Conectar-se
Quem está conectado
26 usuários online :: 2 usuários cadastrados, Nenhum Invisível e 24 Visitantes

gart30, J. Marlon

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 24/11/2009
Número de Mensagens : 803
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

[Resolvido]Colisão alinhada ao GRID

em Dom 27 Fev 2011, 21:29
Então, quando eu clico com o bt esquerdo do mouse cria o player_1 e com o bt direito do mouse o player_2, esses players são alinhados ao GRID de 32x32, agora vem a questão, como fazer para que quando eu criar o player_1 e depois criar o player_2 em cima do player_1 o player_2 se desloque e se alinhe ao GRID!? Tentei fazer mas eles estão parando um em cima do outro! =/ Vlws!


Última edição por Soul Limaloko em Seg 28 Fev 2011, 16:09, editado 1 vez(es)
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1832
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]Colisão alinhada ao GRID

em Dom 27 Fev 2011, 21:39
No step, coloque isso:
Código:
if (mouse_check_button(mb_left) && instance_position(mouse_x, mouse_y, obj_nome) == noone)
instance_create(floor(mouse_x/32)*32, floor(mouse_y/32)*32, obj_nome);
Isso vai checar se a poisção do mouse esta vazia, e então, cria o obj_nome alnhado a grade.
Para fazer pro botão direito, é so trocar o mb_left por mb_right.

Espero ter ajdado.
blz


Última edição por Willy em Dom 27 Fev 2011, 21:42, editado 2 vez(es) (Razão : Code)
avatar
Data de inscrição : 26/02/2011
Número de Mensagens : 107
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]Colisão alinhada ao GRID

em Dom 27 Fev 2011, 21:41
Acho que isso resolverá:

No player_2, após alinhamento:
Código:
{ if (x = player_1.x and y = player_1.y) { hspeed = 5; } if(place_snapped(32,32)) { hspeed = 0; }}

Veja se resolve de certo modo seu problema, se sim, adapte o código para funcionar em qualquer circunstância. Surgindo dúvidas é só postá-las.
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1832
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]Colisão alinhada ao GRID

em Dom 27 Fev 2011, 22:01
Ja estava esquencendo, você quer que ele se desloque para outro grind após ser criado, certo? Então no create do player 2, coloque isso:
Create:
Código:
if place_meeting(x,y,obj_player1){
  if place_free(x+32,y){
  x+=32
  }else if place_free(x-32,y){
  x-=32
  }
}
Esse código checa se o jogador2 esta dentro do jogador1. Se isso for true, ele checara se esta livre a frente dele e se movera 32 pixels. Se Tiver ocupado 32 pix a frente, ele recua 32 pix.

O código que eu passei no tópico anterior não vai permitir a criação do player2 sobre o player1, por isso coloquei esse código também. Mas eu acho que ficaria melhor com o primeiro código.

Espero ter ajudado!
blz
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 24/11/2009
Número de Mensagens : 803
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

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

Re: [Resolvido]Colisão alinhada ao GRID

em Seg 28 Fev 2011, 16:08
Vlws Willy e a todos que ajudaram! Dei uma adaptada no seu code Willy:
Código:
if place_meeting(x,y,player_2){
  if place_free(x,y+32){
  y+=32
  }else if place_free(x,y-32){
  y-=32
  }
}
if place_meeting(x,y,player_1){
  if place_free(x,y+32){
  y+=32
  }else if place_free(x,y-32){
  y-=32
  }
}
if place_meeting(x,y,player_2){
  if place_free(x+32,y){
  x+=32
  }else if place_free(x-32,y){
  x-=32
  }
}
if place_meeting(x,y,player_1){
  if place_free(x+32,y){
  x+=32
  }else if place_free(x-32,y){
  x-=32
  }
}

=D Vlws!
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