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. |
Como parar objeto em determinado lugar da tela (x,y)?
Como parar objeto em determinado lugar da tela (x,y)?
Olá, pessoal. Como faço para interromper movimento de um objeto quando ele chegar em determinado lugar da tela? (GameMaker Studio).
Eu quero mover um objeto no eixo x após clicá-lo.
Assim: Se clicou no objeto, então: hspeed = -5.
if objeto.x = 525 {hspeed = 0}
Dessa forma, dá certo, mas se eu colocar mais velocidade, "hspeed=25" por exemplo, o objeto passa direto e não para.
Eu tentei por colisão com outro objeto, mas não é preciso quando aumento a velocidade e o resultado fica ruim.
Alguém tem uma ideia?
Eu quero mover um objeto no eixo x após clicá-lo.
Assim: Se clicou no objeto, então: hspeed = -5.
if objeto.x = 525 {hspeed = 0}
Dessa forma, dá certo, mas se eu colocar mais velocidade, "hspeed=25" por exemplo, o objeto passa direto e não para.
Eu tentei por colisão com outro objeto, mas não é preciso quando aumento a velocidade e o resultado fica ruim.
Alguém tem uma ideia?
Re: Como parar objeto em determinado lugar da tela (x,y)?
Manda andar sempre de 1 em 1 pixel e lança num loop for 0 to 24, dai fica perfeito.
Re: Como parar objeto em determinado lugar da tela (x,y)?
Basicamente o que foi dito acima, você apenas precisa adicionar a velocidade de movimento à equação, então você iria ver se a posição atual acrescida da velocidade chega lá, então você pode usar um laço de repetição para se aproximar 1 pixel por vez.
Se você clicar no link aqui de baixo eu explico como fazer este modelo de "colisão".
Se você clicar no link aqui de baixo eu explico como fazer este modelo de "colisão".
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Re: Como parar objeto em determinado lugar da tela (x,y)?
Poxa, eu não entendi ou não sei como fazer... :( vou lhes mandar meu código resumido:
(...)
Se eu clicar no objeto:
if objeto.x = 860 && teste=false && toque = 1 //aqui é um teste que eu faço, mas acho que é irrelevante pra vcs...
{
hspeed=-5 //o negócio é aqui. :( Eu quero que essa velocidade seja maior, mas dá errado.
teste=true
toque = 0
}
if objeto.x = 525 && teste = true && toque = 2
{
hspeed = 5 //e aqui
teste= false
toque = 0
}
(...)
Aí quando o objeto está em 525 ou em 860, o hspeed=0. Como falei, dá certo com velocidade menores.
(...)
Se eu clicar no objeto:
if objeto.x = 860 && teste=false && toque = 1 //aqui é um teste que eu faço, mas acho que é irrelevante pra vcs...
{
hspeed=-5 //o negócio é aqui. :( Eu quero que essa velocidade seja maior, mas dá errado.
teste=true
toque = 0
}
if objeto.x = 525 && teste = true && toque = 2
{
hspeed = 5 //e aqui
teste= false
toque = 0
}
(...)
Aí quando o objeto está em 525 ou em 860, o hspeed=0. Como falei, dá certo com velocidade menores.
Re: Como parar objeto em determinado lugar da tela (x,y)?
Você está querendo que ele vá da esquerda para direita e vice versa?
É só colocar então o (x + hspeed >= 860) hspeed = -5 resto do código.
If (x + hspeed <= 525) hspeed = 5 resto do código.
Este não é o melhor jeito de fazer e com velocidades maiores vai ficar nítido o problema.
Olhe o vídeo que eu te indiquei para entender melhor como fazer o laço de repetição.
É só colocar então o (x + hspeed >= 860) hspeed = -5 resto do código.
If (x + hspeed <= 525) hspeed = 5 resto do código.
Este não é o melhor jeito de fazer e com velocidades maiores vai ficar nítido o problema.
Olhe o vídeo que eu te indiquei para entender melhor como fazer o laço de repetição.
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx
Re: Como parar objeto em determinado lugar da tela (x,y)?
Cara, se com 5 de velocidade funciona, então faz um loop de 5 iterações apenas (0 to 4), que visualmente vai andar a 25, só troca o hspeed=5 por x+=5, tudo dentro do loop...
var i;
for (i = 0; i < 4; i += 1)
{
//COLE O SEU CODIGO AQUI DENTRO trocando hspeed por x+
}
var i;
for (i = 0; i < 4; i += 1)
{
//COLE O SEU CODIGO AQUI DENTRO trocando hspeed por x+
}
Re: Como parar objeto em determinado lugar da tela (x,y)?
Consegui :)
Eu tava desenvolvendo o método do None quando me veio à cabeça que eu poderia "corrigir" o posicionamento do objeto no momento da colisão. Vou continuar fazendo testes, pois pode não ser o melhor jeito de fazer esse tipo de coisa, mas por enquanto, o resultado ficou bom. Servirá como se fosse um menu lateral...
Eu lhes agradeço!!
None, seus vídeos são muito bons!
Até a próxima! hehe
Eu tava desenvolvendo o método do None quando me veio à cabeça que eu poderia "corrigir" o posicionamento do objeto no momento da colisão. Vou continuar fazendo testes, pois pode não ser o melhor jeito de fazer esse tipo de coisa, mas por enquanto, o resultado ficou bom. Servirá como se fosse um menu lateral...
Eu lhes agradeço!!
None, seus vídeos são muito bons!
Até a próxima! hehe
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes