Conectar-se
Quem está conectado
25 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 24 Visitantes

WellingtonBecker

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 28/10/2014
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Como mudar a movimentação do objeto

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
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: Como mudar a movimentação do objeto

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
avatar
Data de inscrição : 28/10/2014
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como mudar a movimentação do objeto

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
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: Como mudar a movimentação do objeto

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.
avatar
Data de inscrição : 28/10/2014
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como mudar a movimentação do objeto

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
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: Como mudar a movimentação do objeto

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).
avatar
Data de inscrição : 28/10/2014
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como mudar a movimentação do objeto

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
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: Como mudar a movimentação do objeto

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.
avatar
Data de inscrição : 28/10/2014
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como mudar a movimentação do objeto

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
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 254

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: Como mudar a movimentação do objeto

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...
avatar
Data de inscrição : 28/10/2014
Número de Mensagens : 29
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: Como mudar a movimentação do objeto

em Dom 05 Jul 2015, 12:25
Eu consegui aqui, ficou bem do jeito que eu queria
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum