Como mudar a movimentação do objeto

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

Como mudar a movimentação do objeto

Mensagem por BugueiXD em Sab 04 Jul 2015, 13:07

Eae pessoal, estou quebrando a cabeça mas não estou conseguindo terminar um sistema que eu fiz, queria que um objeto tivesse a movimentação normal, e para isso usei esse código:

Código:
if keyboard_check(vk_right)
  {
   x += 4
  }
  
  if keyboard_check(vk_left)
  {
   x -=4
  }
  
  if keyboard_check(vk_up)
  {
   y -= 4
  }
  
  if keyboard_check(vk_down)
  {
   y += 4
  }

Até ai tudo bem, mas eu queria que quando o objeto entrasse no outro(que no caso é um bloco 32x32) ele mudasse a movimentação para uma movimentação de grid, como se travasse no objeto, mas é claro podendo se movimentar

OBS: O objeto é um alvo, também 32x32

BugueiXD

Número de Mensagens : 29
Data de inscrição : 28/10/2014
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como mudar a movimentação do objeto

Mensagem por Willy em Sab 04 Jul 2015, 13:42

Para a movimentação em grid funcionar, você tem que se certificar que o jogador não poderá alterar a direção do movimento por um certo período de tempo.

Você deverá criar uma variável chamada "Passos", esta por sua vez servirá como um contador (32 à 0). O jogador só poderá se movimentar SE esta var tiver o valor de zero. Por exemplo:

Código:
if (Passos = 0 && keyboard_check(vk_right)){
   Passos = 32;
}
E o movimento em grid seria assim:
Código:
repeat(4){
   if (Passos>0){
      Passos -=1;
      x+=1;
   }
}

Perceba que este pequeno código só se movimentará para a direita. Cabe a você bolar um sistema mais completo, atendendo as suas necessidades.

Dúvidas é só falar.
Flws...
blz

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Como mudar a movimentação do objeto

Mensagem por BugueiXD em Sab 04 Jul 2015, 13:52

Não era bem isso que eu queria, como disse o objeto que eu quero com esse sistema seria um alvo, até ai tudo bem, queria que ele se movimentasse com uma movimentação bem livre, como aquela que eu coloquei ali encima , mas ao colidir com certo objeto, queria que ele ficasse com uma movimentação em grid, como se estivesse travando uma mira

BugueiXD

Número de Mensagens : 29
Data de inscrição : 28/10/2014
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como mudar a movimentação do objeto

Mensagem por Willy em Sab 04 Jul 2015, 13:57

Não entendi muito bem o que exatamente você quer. Mas se você quer que o tipo de movimentação mude, simplesmente use uma variável que decide qual tipo de movimento deve ser executado. Claro, isso é bem óbvio, mas é o que eu consegui entender da sua dúvida, portanto eu sei que não é isso o que você quer.

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Como mudar a movimentação do objeto

Mensagem por BugueiXD em Sab 04 Jul 2015, 14:10

Legal, era isso mesmo que eu queria, criei uma variável chamada movimentação e dei dois valores a ela:

Código:
Movimentacao = 0
Movimentacao = 1

No valor 0 a movimentação é livre, posso movimentar meu alvo pelo cenário todo, no valor 1 a movimentação vira uma movimentação em grid, ficou bom, mas gostaria de saber se tem como arrastar minha mira para o meio do bloco, sendo que os dois tem 32x32

BugueiXD

Número de Mensagens : 29
Data de inscrição : 28/10/2014
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como mudar a movimentação do objeto

Mensagem por Willy em Sab 04 Jul 2015, 14:21

Antes de iniciar o movimento de grid, use um sistema com repeat para igualar o valor x/y dos dois objetos ou simplesmente defina o valor x/y = other.x/y diretamente (isso fará um movimento brusco).

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Como mudar a movimentação do objeto

Mensagem por BugueiXD em Sab 04 Jul 2015, 14:36

Eu tentei fazer assim

Código:
  if  Movimentacao = 1
  {
   repeat(4)
   {
    if x = (other).x && y = (other).y
    {
    }
    else
    {
     x = (other).x && y = (other).y
    }
   }
 }

mas o meu alvo vai para o inicio da tela

BugueiXD

Número de Mensagens : 29
Data de inscrição : 28/10/2014
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como mudar a movimentação do objeto

Mensagem por Willy em Sab 04 Jul 2015, 14:53

A função other funciona apenas no evento de colisão ou dentro de um escopo with.

Considerando que você disse "entrar no alvo", vou considerar que existe uma colisão. Então, no objeto que se movimenta, na colisão com o objeto:
Código:
x = other.x;
y = other.y;
Essa é a forma brusca. A mais suave é um pouco trabalhosa de escrever de cabeça.

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Como mudar a movimentação do objeto

Mensagem por BugueiXD em Sab 04 Jul 2015, 15:14

Quando coloco isso no obj do alvo(que é o que se movimenta) ele não "entra" mais no bloco

BugueiXD

Número de Mensagens : 29
Data de inscrição : 28/10/2014
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como mudar a movimentação do objeto

Mensagem por Willy em Sab 04 Jul 2015, 15:55

Bom, fica meio difícil fazer algo exato, eu não tenho como saber como seus objetos se comportam ou como devem se comportar. Mas a base é essa, manipular o x/y do objeto até que fique na posição desejada.

Flws...

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Como mudar a movimentação do objeto

Mensagem por BugueiXD em Dom 05 Jul 2015, 12:25

Eu consegui aqui, ficou bem do jeito que eu queria

BugueiXD

Número de Mensagens : 29
Data de inscrição : 28/10/2014
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como mudar a movimentação do objeto

Mensagem por Conteúdo patrocinado Hoje à(s) 08:49


Conteúdo patrocinado


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