Rampas, um paradoxo

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

Idéia Rampas, um paradoxo

Mensagem por Luiz A. Oliveira em Dom 01 Jan 2012, 14:16

Opa pessoal, estava aqui sem nada pra fazer e daí tive uma ideia que pode revolucionar os jogos de plataforma da GMBR(Caraca luiz, ainda nessa? É que eu to ajudando um povin com GM e me veio na cabeça que posso criar uma super engine de plataforma).
Chega de conversa, o negócio é o seguinte:
Vendo uma engine de Sonic(A revival), vi que para se movimentar usavam o seguinte código:
Código:
x+cos(angulo)
Y-sin(angulo)
É um jeito muito bom de se movimentar em rampas. Daí eu pensei, e se eu colocasse gravidade???
Pensei em usar o gravity_direction para fazer a gravidade sempre seguir o angulo em que a rampa faz o player andar. Preciso de ajuda, será que um simples lengthdir presta ou terei de fazer um código extenso igual na revival?

E mais, pense comigo. Se em um jogo de plataforma normal usamos:
Código:
if place_free(x,y + 1)
{
gravity = 1
}
else
{
gravity = 0
}
Como fazer para ir sempre verificando o que tem abaixo do player com o angulo alterado?
Creio que terei de ler o tuto do saim sobre lengthdir.
Aguardo repostas...

Luiz A. Oliveira

Ranking : Nota C
Número de Mensagens : 914
Idade : 19
Data de inscrição : 08/09/2010
Notas recebidas : D-B-C
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://luizgm.blogspot.com/

Voltar ao Topo Ir em baixo

Idéia Re: Rampas, um paradoxo

Mensagem por PedroX em Dom 01 Jan 2012, 15:03

Para fazer isso, basta usar as funções trigonométricas.
Mas se a gravidade for de acordo com o ângulo, ele ficará parado no teto.
Mesmo assim, vou mostrar de uma forma mais simples:
Código:
x+=lengthdir_x(gravidade, direction);
y+=lengthdir_y(gravidade, direction);

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Idéia Re: Rampas, um paradoxo

Mensagem por Luiz A. Oliveira em Dom 01 Jan 2012, 15:32

Beleza, assim fica melhor. Mas como relacionar a direção com o angulo da rampa?

Eu fiz assim, no create de um parent das rampas:
ang=radtodeg(arctan(sprite_width/sprite_heigth));
E na colisão do player com a rampa:
ang=other.ang

Mas o player ainda afunda(sem gravidade) quando colido com rampas de inclinações diferentes

Luiz A. Oliveira

Ranking : Nota C
Número de Mensagens : 914
Idade : 19
Data de inscrição : 08/09/2010
Notas recebidas : D-B-C
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://luizgm.blogspot.com/

Voltar ao Topo Ir em baixo

Idéia Re: Rampas, um paradoxo

Mensagem por PedroX em Dom 01 Jan 2012, 19:07

ang=radtodeg(arctan(sprite_width/sprite_heigth));

O tangente é o ângulo oposto pelo adjacente. Sendo assim, seria sprite_height/sprite_width.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Idéia Re: Rampas, um paradoxo

Mensagem por Conteúdo patrocinado Hoje à(s) 10:34


Conteúdo patrocinado


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