Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
Bug em objeto que deveria seguir outro Tópico resolvido
- ragnarbrody
- Novato
- Reações: 0
- Mensagens: 3
Bug em objeto que deveria seguir outro
Estou com um problema em meu jogo, meu protagonista é composto por 2 objetos, o objeto "corpo" e o objeto "cabeça", fiz eles separados pois quando o jogador passa por cima de uma bola de tinta, a cabeça do jogador deve mudar de cor, coloquei na aba "step" do objeto cabeça que a posição do eixo y e o do eixo x devem ser iguais das do objeto corpo, em um primeiro momento funciona, como mostrado no gif abaixo:
Mas se o jogador andar contra os limites do mapa, a cabeça se desloca para fora do corpo, como mostrado abaixo:
Sabem como posso resolver?
Mas se o jogador andar contra os limites do mapa, a cabeça se desloca para fora do corpo, como mostrado abaixo:
Sabem como posso resolver?
Re: Bug em objeto que deveria seguir outro Tópico resolvido
Ao invés de usar o evento "step" utilize o "end step". Assim não vai ficar com atraso.
Creio que deva funcionar.
Creio que deva funcionar.
- ragnarbrody
- Novato
- Reações: 0
- Mensagens: 3
Re: Bug em objeto que deveria seguir outro
Cara, funcionou, obrigado, mas pode me explicar porque colocar no "end step" resolveu? e qual a diferença efetiva do "step" pro "end step"?
Re: Bug em objeto que deveria seguir outro
Sequência dos eventos (veja a lista completa):
Quando você utiliza o Step para mover suas instâncias, a nova posição só será desenhada no evento Draw. E quando você usa posição de outro objeto (x = corpo.x), naquele momento ele ainda pode não ter mudado de posição, pois a como é seguida uma lista (Quando falei que executa o evento pra todos, ele percorre um lista) pode ser que a posição do corpo ainda não tenha mudado. Dessa forma ele pega uma posição anterior, causando um atraso.
Colocando o código no End Step, temos a principio a certeza que o Step, já foi executado pra todas as instâncias (Inclusive com x, y atualizados vindos do sistema básico de movimento hspeed, vspeed e etc).
Em resumo: O Step ocorre antes das instâncias terem sua nova posição, e o End Step depois. Se tu faz a maior parte das movimentações no Step, quando utiliza o End Step conseguirá posições atualizadas.
- Begin Step
- Step
- End Step
- Draw
Quando você utiliza o Step para mover suas instâncias, a nova posição só será desenhada no evento Draw. E quando você usa posição de outro objeto (x = corpo.x), naquele momento ele ainda pode não ter mudado de posição, pois a como é seguida uma lista (Quando falei que executa o evento pra todos, ele percorre um lista) pode ser que a posição do corpo ainda não tenha mudado. Dessa forma ele pega uma posição anterior, causando um atraso.
Colocando o código no End Step, temos a principio a certeza que o Step, já foi executado pra todas as instâncias (Inclusive com x, y atualizados vindos do sistema básico de movimento hspeed, vspeed e etc).
Em resumo: O Step ocorre antes das instâncias terem sua nova posição, e o End Step depois. Se tu faz a maior parte das movimentações no Step, quando utiliza o End Step conseguirá posições atualizadas.
Quem está online
Usuários navegando neste fórum: Bing [Bot] e 1 visitante