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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 14/05/2009
Número de Mensagens : 135
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

Desenhando área de colisão

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]
avatar
Ranking : Sem avaliações
Data de inscrição : 26/08/2009
Número de Mensagens : 969
Insígnias de JAM :

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

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

Re: Desenhando área de colisão

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
avatar
Data de inscrição : 17/05/2009
Número de Mensagens : 938
Insígnias de JAM :

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

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

Re: Desenhando área de colisão

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

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 *-*
avatar
Ranking : Nota A
Notas recebidas : A+A
Data de inscrição : 20/03/2010
Número de Mensagens : 1134
Insígnias de JAM :

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

Prêmios
   : 1
   : 0
   : 1
Ver perfil do usuáriohttps://www.facebook.com/seito.washiro.7

Re: Desenhando área de colisão

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
}
}

Conteúdo patrocinado

Re: Desenhando área de colisão

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