Solução para movimento em terreno irregular?

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

Idéia Solução para movimento em terreno irregular?

Mensagem por Thomaz em Seg 09 Jul 2012, 18:06

Olá pessoas, eu estou com mais algumas dúvidas de lógica. Mas dessa vez eu acho que não é qualquer pessoa que pode me ajudar, já que é uma dúvida que requer mais conhecimentos de lógica / Programação/ matemática / física/ loucura. Então... Vamos a dúvida.

Estava eu pesquisando como fazer movimentação em terrenos irregulares e vi que haviam postado em um fórum do game maker que é possível fazer de uma maneira mais simples este tipo de movimentação(sem necessidade de dlls). Daí eu comecei a estudar um pouco mais este método e a ideia dele é: Fazer com que o player se movimente através da "permissão" de dois pontos que colidem no solo.

É meio complicado de explicar, por isto, aí vai uma imagem(que eu fiz. Sim, está feia.):

A ideia é a seguinte: os pontos ficam em uma distância predeterminada(exemplo, como a imagem mostra, estes pontos podem ficar no centro (em relação ao eixo y) só que ficam, ambos, bem a frente do player (em relação ao eixo x) sendo um na ponta da sprite e outro mais ou menos 10 pixels a frente da própria sprite.(Lembrando que estes pontos não são objetos. São apenas variáveis que são determinadas por um "if point_position" ou algo do tipo. O importante é saber que são coordenadas)

A cada step estes pontos "cairão", pararão ao "colidir" com o chão(ele não colidirá já que não é um objeto) e determinaram o ângulo formado por estes pontos através do point_direction (entre os pontos). Desta forma, o player terá uma direção para se movimentar independente do solo. Lógico que se for muito alta a plataforma ele também andará MAAAAAS é só coloca um "if" que delimite o ângulo máximo que o player pode se movimentar... Por exemplo, se o ângulo formado for entre 60° e 120° coloca-se que ele não poderá se movimentar.


Aí que vem a minha dúvida. Não quero perder tempo trabalhando com um método rudimentar. Só preciso saber se este é o método mais simples para se trabalhar com movimentação em terrenos irregulares e/ou se vocês tem alguma incrementação ao sistema.

Thomaz

Ranking : Nota A
Número de Mensagens : 106
Idade : 21
Data de inscrição : 13/10/2011
Notas recebidas : A
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://bigleafeater.tumblr.com/

Voltar ao Topo Ir em baixo

Idéia Re: Solução para movimento em terreno irregular?

Mensagem por DavidSousa7474 em Seg 09 Jul 2012, 18:46

Acho mais simples usar o move_contact
Não vais precisar de criar "milhares" de variaveis
Veja esta engine feita pelo Jiraya
http://gmbr.forumeiros.com/t21693-exemploplataforma-simples-para-iniciantes?highlight=plataforma

DavidSousa7474

Ranking : Nota D
Número de Mensagens : 75
Data de inscrição : 07/12/2010
Notas recebidas : D
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Idéia Re: Solução para movimento em terreno irregular?

Mensagem por PedroX em Seg 09 Jul 2012, 18:50

Para pegar a posição do canto da sprite, use bbox_right e bbox_bottom.

Um jeito também que dá certo é:

Código:

//mover_rampas(x_speed, angulo maximo)

var hor, angulo, y_max, temp1;
hor = (keyboard_check(vk_right) - keyboard_check(vk_left));
if (hor==0) return 0;

temp1 = tan(degtorad(argument1));
y_max = temp1*(argument0 - x) + y;

var i;
for (i = 0; i < y_max; i += 1)
{
angulo = point_direction(x, y, x + hor * argument0, y - i)
if (hor==-1) if (angulo< 180-argument1) return 0;
if (hor==+1)if (angulo> argument1) return 0;

if (place_free(x+ hor * argument0, y- i))
    {
        x += hor*argument0;
        y -= i;
return 1;
    }
}
return 0;

Envolve matemática como você disse.

Até mais!

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: Solução para movimento em terreno irregular?

Mensagem por Conteúdo patrocinado Hoje à(s) 12:38


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