Desenhando área de colisão

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

Desenhando área de colisão

Mensagem por kelvindeth em Qua 21 Jul 2010, 09:57

Olá galera...

Como eu posso fazer (desenhar) uma área de colisão ?...

Eu tenho todos os movimentos de um personagem aqui, que usa uma máscara quadrada,dai não tem como eu usar mask_index, se não acaba Bugando os movimentos dele...

Mais eu queria que quando eu atacasse, que no meu caso é com a letra A do teclado...

Ele desenhar uma área de colisão (Retangulo), e se o inimigo encostar nessa área de colisão criada, ser destruido...

Obs. Um área de colisão +- assim: [IIIIIIIIIIIIIIII]

kelvindeth

Número de Mensagens : 135
Idade : 24
Data de inscrição : 14/05/2009
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: Desenhando área de colisão

Mensagem por itallo em Qua 21 Jul 2010, 11:41

você pode fazer o seguinte:

ao apertar a letra A
criar um objeto dano invisivel no lado em que vc atacou.
firaria + ou - assim:

if keyboard_check_pressed(ord("A"))
{
nnn = instance_create(x,y,obj_dano)
nnn.dano = dar o valor do dano
}

dai ele cria o objeto dano, se o inimigo encostar nele ele leva dano.

entao no evento de colisao com o objeto dano do inimigo coloque isso:

position_destroy(other.x,other.y)

que ao levar dano ele irá destruir o objeto dano

itallo

Ranking : Sem avaliações
Número de Mensagens : 969
Idade : 24
Data de inscrição : 26/08/2009
Reputação : 12
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.zuluhotel.com.br

Voltar ao Topo Ir em baixo

Re: Desenhando área de colisão

Mensagem por Denis Lemos em Qua 21 Jul 2010, 12:41

Ou você pode criar uma variável "global atacando" que fica verdadeira quando aperta a tecla e falsa depois que solta:
Declare ela no CREATE do player:
Código:

globalvar atacando; Torna ela global
atacando=false; Começa sem estar atacando é claro
No CREATE do inimigo, apenas declarar ela com global, porque as vezes dá como variavel não existente se não declarar ela nos objetos que será usada, mesmo sendo global:
Código:

globalvar atacando;
Daí no STEP do inimigo colocar:
Código:

if atacando=true // Se o player estiver atacando
{
  if collision_rectangle(x-40,y-10,x+40,y+10,obj_player,true,true) // Se o inimigo estiver colidindo com o player
  {
    instance_destroy() // Aqui o código para destruir o inimigo
  }
}

O que está sendo feito ??? É desenhado um retângulo com 40px para a esquerda e 40px para a direita do "X" , e 10px para cima e 10px para baixo do "Y" do inimigo, e quando o player estiver encostando nesse retângulo, se estiver atacando, o inimigo vai ser destruido !

Agora você só tem que dizer para o player quando que "atacando" será verdadeiro ou falso, atravéz de pressionamento de teclas ou o que preferir !

Até + !

Denis Lemos

Número de Mensagens : 938
Idade : 28
Data de inscrição : 17/05/2009
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Desenhando área de colisão

Mensagem por kelvindeth em Qua 21 Jul 2010, 14:53

Hum.. as 2 dicas, são ótimas...

Vou tentar fazer aqui... respondo mais tarde se deu certo ou não, vou ter que sair agora =/...

Mais vlw aew galera.. depois do EDIT *-*

kelvindeth

Número de Mensagens : 135
Idade : 24
Data de inscrição : 14/05/2009
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: Desenhando área de colisão

Mensagem por Jiraya em Qua 21 Jul 2010, 18:57







voce poderia fazer assim.caso seu personagem semove por velocidade
if hspeed<0 dir=180;else if hspeed>0 dir=0;else dir=0
X=x+lengthdir_x(24,dir)
Y=y+lengthdir_y(24,dir)
if instance_exists(obj_enemy ){
i=instance_nearest(x,y,obj_Enemy)
if collision_line(x,y,X,Y,i,0,0){
//aqui vc coloca o que acontece na colisao
}
}


Jiraya

Ranking : Nota A
Número de Mensagens : 1134
Data de inscrição : 20/03/2010
Notas recebidas : A+A
Reputação : 108
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

Re: Desenhando área de colisão

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


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