Ú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

[RESOLVIDO] Descer rampas

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

[RESOLVIDO] Descer rampas

Mensagem por fernando.munizerthal 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
fernando.munizerthal

Data de inscrição : 17/10/2013
Número de Mensagens : 76
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: [RESOLVIDO] Descer rampas

Mensagem por gabrielsch 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
gabrielsch

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 1 x 1 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 2
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: [RESOLVIDO] Descer rampas

Mensagem por fernando.munizerthal 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
fernando.munizerthal

Data de inscrição : 17/10/2013
Número de Mensagens : 76
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: [RESOLVIDO] Descer rampas

Mensagem por Sewer Crawler 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
Sewer Crawler

Data de inscrição : 08/10/2014
Número de Mensagens : 236
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: [RESOLVIDO] Descer rampas

Mensagem por fernando.munizerthal 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 ;)
avatar
fernando.munizerthal

Data de inscrição : 17/10/2013
Número de Mensagens : 76
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