Conectar-se
Quem está conectado
26 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 26 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 17/10/2013
Número de Mensagens : 76
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

[RESOLVIDO] Descer rampas

em Dom 12 Abr 2015, 03:13
Antes de mais nada, Sim! Eu sei que existem milhares de posts e engines aqui de como fazer a movimentação em diversos ângulos.. Porém eu olhei todos já, e nenhum deles é a maneira que eu preciso, não quero uma engine com 50 scripts e um milhão de variáveis que eu preciso de uma semana pra entender..

A movimentação do meu personagem é feita com MEFs (Máquina de estado finito)..

Nos meus estados andando direita/esquerda eu movo o meu personagem com x + 7..

No step do meu personagem tenho o seguinte código para subir as rampas:
Código:
   while(place_meeting(Player_Obj.x, Player_Obj.y, diagonal2_obj))
    {
        Player_Obj.y -= 1;
    }

Esse código funciona perfeitamente para fazer o personagem subir a rampa, e como pode ser visto é um código extremamente simples, com uma lógica completamente básica, que qualquer um entende..

O que estou procurando é algo similar para descer a rampa, pois com o código apenas "ao contrário" o personagem vai descendo a rampa dando pequenos pulos.. (Acredito que isso ocorra por que na subida ele colide de frente com a rampa, enquanto na descida ele não esta pechando com nada.. Então ele anda mais e precisa descer menos vezes.. Algo assim).

O código que uso e que existe o problema dos pulos é o seguinte:
Código:
   while(place_meeting(Player_Obj.x, Player_Obj.y, diagonal2_obj))
    {
        Player_Obj.y += 1;
    }

Obs.: Os códigos colocados anteriormente são referentes a movimentação para a direita, a cada estado da MEF é somado 7 ao x.
Os objetos "diagonal1_obj" e "diagonal2_obj" representam respectivamente as rampas assim: /| e |\

Não relacionado com a dúvida:
Essa dúvida não é só minha, sei que existem engines boas, mas assim como eu, muitos aqui não tem tempo suficiente para destrinchar códigos de engines.. Engines boas porém complexas de mais.. Achei uma engine perfeita outro dia que falava da movimentação completa.. Mas tudo que eu queria era a rampa, não tinha como eu pegar todo aquele conteúdo e adaptar as minhas MEFs.. Acredito que quanto mais simples a solução mais fácil de adaptar a outros projetos que já estão com outras dezenas de códigos diferentes dos de cada pessoa..


Última edição por fernando.munizerthal em Qua 15 Abr 2015, 10:00, editado 3 vez(es)
avatar
Ranking : Nota A
Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Número de Mensagens : 1229
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 28

Prêmios
   : 1
   : 2
   : 0
Ver perfil do usuário

Re: [RESOLVIDO] Descer rampas

em Dom 12 Abr 2015, 04:30
Visto o teu problema acredito que a solução seria verificar se existe esses objetos apenas quando for se movimentar para esquerda ou direita, algo como:
Código:

if keyboard_check_direct(vk_right)
{
 if place_meeting(Player_Obj.x + 4, Player_Obj.y, diagonal1_obj)
 {
  player_Obj.y += 1;
 }
}
avatar
Data de inscrição : 17/10/2013
Número de Mensagens : 76
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [RESOLVIDO] Descer rampas

em Dom 12 Abr 2015, 11:26
Amigo, ja é dessa forma que eu faço.. Apenas quando esta no estado andando direta/esquerda.. Porém dessa forma ocorre meu problema, até se tu ver o código que tu postou é igual ao meu ;)
avatar
Data de inscrição : 08/10/2014
Número de Mensagens : 236
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 27

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [RESOLVIDO] Descer rampas

em Dom 12 Abr 2015, 21:43
Ao descer a rampa, a colisão se dá abaixo do player. E se vc colocasse na colisão : Player_Obj.y +1?
avatar
Data de inscrição : 17/10/2013
Número de Mensagens : 76
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [RESOLVIDO] Descer rampas

em Seg 13 Abr 2015, 01:23
Já tentei isso também, faz sentido.. Mas não funcionou..

Uma coisa que observei é que a cada 7 somado no x para andar a para a direita >>, ele fica acima da rampa muito mais que 1.. Certo?  Então talvez seja por isso que ele esteja dando os pulos, ele não colide com a rampa, ele simplesmente anda sete para a frente e cai.. Não está colando com a rampa como deveria..

Não sei o que fazer :X

-----EDITADO-----

Agradeço aos poucos que me deram alguma ajuda..
Consegui solucionar o problema, quem estiver interessado na solução me manda uma MP ;)
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum