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)?

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Curioso
Novato
Novato
Reações: 0
Mensagens: 13

Como parar objeto em determinado lugar da tela (x,y)?

Mensagem por Curioso » Sáb Ago 25, 2018 7:57 pm

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?

Avatar do usuário
fuzenrad
Programador
Programador
Reações: 0
Mensagens: 7

Re: Como parar objeto em determinado lugar da tela (x,y)?

Mensagem por fuzenrad » Sáb Ago 25, 2018 8:35 pm

Manda andar sempre de 1 em 1 pixel e lança num loop for 0 to 24, dai fica perfeito.

Avatar do usuário
None
Colaborador
Colaborador
Reações: 2
Mensagens: 286

Re: Como parar objeto em determinado lugar da tela (x,y)?

Mensagem por None » Sáb Ago 25, 2018 9:38 pm

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".
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

Avatar do usuário
Curioso
Novato
Novato
Reações: 0
Mensagens: 13

Re: Como parar objeto em determinado lugar da tela (x,y)?

Mensagem por Curioso » Sáb Ago 25, 2018 10:20 pm

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.

Avatar do usuário
None
Colaborador
Colaborador
Reações: 2
Mensagens: 286

Re: Como parar objeto em determinado lugar da tela (x,y)?

Mensagem por None » Dom Ago 26, 2018 1:45 am

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.
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

Avatar do usuário
fuzenrad
Programador
Programador
Reações: 0
Mensagens: 7

Re: Como parar objeto em determinado lugar da tela (x,y)?

Mensagem por fuzenrad » Dom Ago 26, 2018 6:16 am

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+
}

Avatar do usuário
Curioso
Novato
Novato
Reações: 0
Mensagens: 13

Re: Como parar objeto em determinado lugar da tela (x,y)?

Mensagem por Curioso » Dom Ago 26, 2018 8:28 pm

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

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes