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

Nenhum

Ver toda a lista


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

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

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

[Duvida] Colisoes com grid

em Ter 04 Ago 2015, 17:36
tenho a seguinte duvida

isei uma inteligencia artificial com o movimento em grid coloquei todas as sprites mascaradas com retangulo  32,32 completo, e utilizei esse code:

Código:
if place_snapped(32,32)
{
  if (hspeed == 0)
  {
    if (random(3)<1 && place_free(x-4,y))
      { hspeed = - velocidade; vspeed = 0;}
    if (random(3)<1 && place_free(x+4,y))
      { hspeed =  velocidade ; vspeed = 0;}
  }
  else
  {
    if (random(3)<1 && place_free(x,y-4))
      { hspeed = 0; vspeed = -velocidade;}
    if (random(3)<1 && place_free(x,y+4))
      { hspeed = 0; vspeed =  velocidade;}
  }
}if place_snapped(32,32)
{
  if (hspeed == 0)
  {
    if (random(3)<1 && place_free(x-4,y))
      { hspeed = - velocidade; vspeed = 0;}
    if (random(3)<1 && place_free(x+4,y))
      { hspeed =  velocidade ; vspeed = 0;}
  }
  else
  {
    if (random(3)<1 && place_free(x,y-4))
      { hspeed = 0; vspeed = -velocidade;}
    if (random(3)<1 && place_free(x,y+4))
      { hspeed = 0; vspeed =  velocidade;}
  }
}

sao 3 objetos com essa IA e um que é o jogador , mas quando batem de frente eles travam , ja tentei todas as formas que conheco pra resolver , mas nao conseguir sucesso , gostaria de uma luz de como fazer eles nao pararem e permanecer na grid que estao!

agradeco
avatar
Data de inscrição : 08/10/2014
Número de Mensagens : 236
Insígnias de JAM :

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

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

Re: [Duvida] Colisoes com grid

em Ter 04 Ago 2015, 22:23
Encontrei um código parecido com o seu, veja se te ajuda.
Código:
if place_snapped(16,16)
{
speed=0;
if keyboard_check(vk_up)
    {
    if !place_meeting(x,y-16,obj_Wall)
        {
        vspeed=-4;
        exit;
        }
    }
if keyboard_check(vk_down)
    {
    if !place_meeting(x,y+16,obj_Wall)
        {
        vspeed=4;
        exit;
        }
    }
if keyboard_check(vk_left)
    {
    if !place_meeting(x-16,y,obj_Wall)
        {
        hspeed=-4;
        exit;
        }
    }
if keyboard_check(vk_right)
    {
    if !place_meeting(x+16,y,obj_Wall)
        {
        hspeed=4;
        exit;
        }
    }
}
avatar
Ranking : Nota B
Notas recebidas : B + A + C
Data de inscrição : 29/10/2010
Número de Mensagens : 1013
Insígnias de JAM :

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

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

Re: [Duvida] Colisoes com grid

em Qua 05 Ago 2015, 00:18
Eu fiz uma engine dessas recentemente usando arrays. A instância, ao mover, já "fecha" a grid de destino assim eles nunca travam no mesmo lugar.

https://db.tt/3WwjdOag

Na array, 0 indica "livre" e 1 é "fechado". Só que eu comentei tudo em inglês porquê fiz para a GMC.
Conteúdo patrocinado

Re: [Duvida] Colisoes com grid

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