Últimos assuntos
» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

» Ajuda para mecanismo do jogo
por Willy Dom 16 Jul 2017, 15:54

Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220918 mensagens em 30411 assuntos

Como suavizar a câmera?

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Como suavizar a câmera?

Mensagem por irlansn em Sab 01 Dez 2012, 23:36

Olá pessoal, eu estou meio sumido do fórum por incrível que pareça por causa de meus projetos, estou meio sem tempo, mas estou com uma duvida aparentemente simples, mas não estou conseguindo resolver:

eu queria deixar a câmera mais suave, para deixar a jogabilidade melhor, eu coloquei para o obj_camera seguir o player, e como já era de se esperar quando o player para ele para também, a câmera parando bruscamente fica muito estranho. Queria que quando o player pare a câmera siga diminuindo a velocidade até chegar a 0 (de 1 em 1), quando chegar a 0 o player não estará mais no centro, então ele deve voltar, aumentando a velocidade e quando chegar na metade do percurso que ela deve fazer para voltar para a posição e começa a diminuir novamente, fiz uma imagem para ilustrar melhor o que estou falando, lembrando que a largura da seta que indica o movimento da câmera é referente a velocidade dela:

http://img826.imageshack.us/img826/9915/escola3.jpg
O problema é ainda maior quando o player cai no chão, quando ele pula tudo bem, afinal ele vai diminuindo a velocidade e quando chega a 0 começa a cair aumentando a velocidade aos poucos, exatamente o que quero. Então quando ele colide com o chão ele já esta com uma grande velocidade deixando a parada da câmera ainda mais bruta....

o que fazer?

agradeço desde já...
flw
avatar
irlansn

Ranking : Nota C
Notas recebidas : B+D
Data de inscrição : 18/01/2011
Número de Mensagens : 482
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Como suavizar a câmera?

Mensagem por Rodrigo Santiago em Dom 02 Dez 2012, 07:48

Eu enventei um script para suavizar a camera, e um pouco grande, e existe duas formas(elas vao estar na apostila q vou lancar), vou fazer upload do modelo 1.

http://www.4shared.com/file/EC26rfOM/engine_camera_mod1.html

#Editado por luiz_eldorado:
Post-duplo, alertado.
avatar
Rodrigo Santiago

Ranking : Nota B
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Número de Mensagens : 1281
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 3
   : 1
   : 3

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Como suavizar a câmera?

Mensagem por irlansn em Dom 02 Dez 2012, 23:12

@Rodrigo Santiago escreveu:Eu enventei um script para suavizar a camera, e um pouco grande, e existe duas formas(elas vao estar na apostila q vou lancar), vou fazer upload do modelo 1.

http://www.4shared.com/file/EC26rfOM/engine_camera_mod1.html

#Editado por luiz_eldorado:
Post-duplo, alertado.

Muito obrigado pela resposta, mas não é bem o que eu queria..... eu quero sim que a câmera se mova na mesma velocidade do player, pois se estabelecer um "limite" que foi +/- o que vc fez vc vai só fazer com que a câmera tenha um limite de velocidade, é claro se suaviza sim, mas não vai acabar com o problema, pois se o player andar mais rápido a câmera fica para traz, o que eu queria é que a câmera acompanhasse o player na mesma velocidade, mas quando o player parar, sua velocidade vai de 5 para 0, no meu caso de 20 para 0, e a câmera para nessa mesma velocidade, essa parada que quero evitar, quero que a câmera siga como se o player não tivesse parado, mas vá diminuindo a velocidade até chegar a 0, e quando chegar a 0 ele enquadra o player novamente no centro, para deixar o player no centro da view novamente ela vai voltar o caminho que percorreu sem a companhia do player, esse movimento também deve ser suave, ela vai aumentando o hspeed/vspeed até chagar ao meio do percurso que ele vai fazer para voltar a posição do player, pois quando chegar na metade do percurso ele volta a diminuir a velocidade até chagar a 0 e automaticamente se enquadra com o player...
Entende? é como ilustrei na imagem, imagine que a seta vermelha é o percurso que a câmera deve fazer quando o player parar, e a sua largura indica a velocidade naquele ponto, observe que a sema começa grossa, diminui de espessura, aumenta novamente e volta a diminuir....

http://img826.imageshack.us/img826/9915/escola3.jpg

flw
avatar
irlansn

Ranking : Nota C
Notas recebidas : B+D
Data de inscrição : 18/01/2011
Número de Mensagens : 482
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Como suavizar a câmera?

Mensagem por Alex FC em Seg 03 Dez 2012, 02:01

Estou no celular, então vou tentar ser breve. Esse é o esquema que usei no meu game Action Robo. Faça o seguinte:

- Crie um objeto chamado obj_camera;
- Vá até a sua room e configure a view para seguir esse objeto;
- No Step desde objeto coloque:

Código:
//Se o player existe
if instance_exists(obj_player)
{
    var ddir, dvel;

    ddir = point_direction(x,y,obj_player.x,obj_player.y);
    dvel = point_distance( x,y,obj_player.x,obj_player.y) * 0.5;

    motion_set(ddir,dvel);
}
Mude o 0.5 para menos se quer mais suave e para mais para menos suave. Sendo 1 totalmente rígido.

FLWS!
avatar
Alex FC

Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 2
   : 1
   : 1

Ver perfil do usuário http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: Como suavizar a câmera?

Mensagem por irlansn em Seg 03 Dez 2012, 09:49

@Alex FC escreveu:Estou no celular, então vou tentar ser breve. Esse é o esquema que usei no meu game Action Robo. Faça o seguinte:

- Crie um objeto chamado obj_camera;
- Vá até a sua room e configure a view para seguir esse objeto;
- No Step desde objeto coloque:

Código:
//Se o player existe
if instance_exists(obj_player)
{
    var ddir, dvel;

    ddir = point_direction(x,y,obj_player.x,obj_player.y);
    dvel = point_distance( x,y,obj_player.x,obj_player.y) * 0.5;

    motion_set(ddir,dvel);
}
Mude o 0.5 para menos se quer mais suave e para mais para menos suave. Sendo 1 totalmente rígido.

FLWS!

FICOU MUITO BOM, e é bem simples (porque não pensei nisso antes?!?!) muito obrigado....

PS: Podem trancar o tópico....
avatar
irlansn

Ranking : Nota C
Notas recebidas : B+D
Data de inscrição : 18/01/2011
Número de Mensagens : 482
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum