Colisão entre objetos

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

Colisão entre objetos

Mensagem por Wallacy Sebastian em Qui 05 Fev 2009, 13:38

Como faz quando um objeto colidir em um certo lugar do outro objeto esse mesmo objeto se mova? :|

Wallacy Sebastian

Número de Mensagens : 121
Idade : 23
Data de inscrição : 11/12/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Colisão entre objetos

Mensagem por Juninho em Qui 05 Fev 2009, 16:13

No objeto que vc quer colidir, set o evento colisão com o player, e execute code:

Código:
if (other.x)>x{
x+=SPEED  //em SPEED vc coloca a velocidade do seu personagem qdo anda
}

if (other.x)<x{
x-=SPEED  //em SPEED vc coloca a velocidade do seu personagem qdo anda
}


Espero ter ajudado, flw

Juninho

Número de Mensagens : 468
Data de inscrição : 11/08/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Colisão entre objetos

Mensagem por Gusba em Qui 05 Fev 2009, 23:12

vc quer saber o lugar???

use um for aninhado com outro for para varrer a sprite a procura de colisoes, assim vc sabera a posição exata da colisao

Gusba

Número de Mensagens : 1156
Idade : 21
Data de inscrição : 03/08/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.ciganospictures.hd1.com.br

Voltar ao Topo Ir em baixo

Re: Colisão entre objetos

Mensagem por Lap1994 em Qui 05 Fev 2009, 23:40

KKKKK, juninho q player? Naum tem player é só o objeto xD
Wallacy vc precisa ser mais descritivo. O mais básico é usar as bbox pra se orientar.
No evento de colisão de um objeto com o outro vc pode usar o IF com a bbox pra saber se colidiu emcima, embaixo ou dos lados do outro objeto:
if y<other.bbox_top //emcima
if y>other.bbox_bottom //embaixo
if x>other.bbox_right //a direita
if x<other.bbox_left //a esquerda

Outro caso seria se vc quiser saber se um objeto colidiu em uma area dentro de outro objeto(a bala acertou o olho do chefaum, o unico ponto fraco na maioria das vezes) Aew vc iria precisar usar uma mascara(mask)

E por ultimo pra fazer q um objeto se mova tem inumeras maneiras. Vc precisa ser mais especifico. Pra cima? Pra baixo? Pra direção oposta ao outro objeto? Na direção do outro objeto? Em direção a lua? Ao boteco? A prassa da sé? xD

Lap1994

Número de Mensagens : 350
Idade : 22
Data de inscrição : 20/11/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://lap1994.deviantart.com/

Voltar ao Topo Ir em baixo

Re: Colisão entre objetos

Mensagem por Gusba em Sex 06 Fev 2009, 00:05

Outro caso seria se vc quiser saber se um objeto colidiu em uma area dentro de outro objeto(a bala acertou o olho do chefaum, o unico ponto fraco na maioria das vezes) Aew vc iria precisar usar uma mascara(mask)


cara, desenvolvi esse script q salva a posição wolrd de uma colisao:

Código:
for ( h = 0 ; h <= sprite_width ; h += 1 ) {
    for ( v = 0 ; v <= sprite_height ; v += 1 ) {
        if (position_meeting(x + h, y + v, other)) {
            colisao_x = x + h;
            colisao_y = y + v;
        }
    }
}

Gusba

Número de Mensagens : 1156
Idade : 21
Data de inscrição : 03/08/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.ciganospictures.hd1.com.br

Voltar ao Topo Ir em baixo

Re: Colisão entre objetos

Mensagem por Lap1994 em Sex 06 Fev 2009, 00:22

Naum rola. Há muitos erros alem disso acho q agente devia esperar ele nos dar uma descrição mais descritiva do q deseja.

Lap1994

Número de Mensagens : 350
Idade : 22
Data de inscrição : 20/11/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://lap1994.deviantart.com/

Voltar ao Topo Ir em baixo

Re: Colisão entre objetos

Mensagem por Wallacy Sebastian em Sex 06 Fev 2009, 20:31

foi mal não expliquei direito msm :|
por exemplo: o player colide em cima do objeto, aí eu queria que esse objeto fosse
para baixo, tipo se colidir na esquerda o objeto vai pra direita, se a colisão for na direita o objeto vai para a esquerda. Smile

Wallacy Sebastian

Número de Mensagens : 121
Idade : 23
Data de inscrição : 11/12/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Colisão entre objetos

Mensagem por Igor KinGamer em Sex 06 Fev 2009, 22:58

KKKKK, juninho q player? Naum tem player é só o objeto xD
por exemplo: o player colide em cima do objeto [...]

Hmm, parece que tem player sim.

É só fazer assim:

No evento do player colidir com o objeto, coloque isso:

other.x += hspeed;
other.y += vspeed;

Seu jogo deve ser visto de cima, certo?

Se seu personagem pode andar na diagonal, para evitar erros faça assim:

No evento do player colidir com o objeto:

if ((bbox_right < other.bbox_left) || (bbox_left > other.bbox_right))
other.x += hspeed;
else if ((bbox_bottom < other.bbox_top) || (bbox_top > other.bbox_bottom))
other.y += vspeed;

Não testei mas acho que funciona.

Igor KinGamer

Número de Mensagens : 890
Idade : 21
Data de inscrição : 26/09/2008
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Colisão entre objetos

Mensagem por Wallacy Sebastian em Sab 07 Fev 2009, 10:26

vlw Happy
mas o objeto esta movendo só para a direita e para baixo.
como faz pra mover pra esquerda ou pra cima?
Rolling Eyes

Wallacy Sebastian

Número de Mensagens : 121
Idade : 23
Data de inscrição : 11/12/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Colisão entre objetos

Mensagem por Gusba em Sab 07 Fev 2009, 13:43

pow cara, examina bem o code, acredito que vc tem capacidade para fazer, queremos que vc aprenda, pelo menos tente!

Gusba

Número de Mensagens : 1156
Idade : 21
Data de inscrição : 03/08/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   :
   :

http://www.ciganospictures.hd1.com.br

Voltar ao Topo Ir em baixo

Re: Colisão entre objetos

Mensagem por Wallacy Sebastian em Dom 08 Fev 2009, 10:31

[code]

if direita = true{
if ((bbox_right < other.bbox_left) || (bbox_left > other.bbox_right)){
other.x += 5;
}else{
other.x -= 5;
}
}


if baixo = true{
if ((bbox_top < other.bbox_bottom) || (bbox_bottom > other.bbox_top)){
other.y += 5;
}else{
other.y -=5;
}
}
enfim, consegui Very Happy

Wallacy Sebastian

Número de Mensagens : 121
Idade : 23
Data de inscrição : 11/12/2008
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Colisão entre objetos

Mensagem por Conteúdo patrocinado Hoje à(s) 21:55


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