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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 11/12/2008
Número de Mensagens : 121
Insígnias de JAM :

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

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

Colisão entre objetos

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? :|
avatar
Data de inscrição : 11/08/2008
Número de Mensagens : 468
Insígnias de JAM :

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

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

Re: Colisão entre objetos

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
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1156
Insígnias de JAM :

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

Prêmios
   : 1
   :
   :
Ver perfil do usuáriohttp://www.ciganospictures.hd1.com.br

Re: Colisão entre objetos

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
avatar
Data de inscrição : 20/11/2008
Número de Mensagens : 350
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://lap1994.deviantart.com/

Re: Colisão entre objetos

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
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1156
Insígnias de JAM :

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

Prêmios
   : 1
   :
   :
Ver perfil do usuáriohttp://www.ciganospictures.hd1.com.br

Re: Colisão entre objetos

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;
        }
    }
}
avatar
Data de inscrição : 20/11/2008
Número de Mensagens : 350
Insígnias de JAM :

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

Prêmios
   :
   :
   :
Ver perfil do usuáriohttp://lap1994.deviantart.com/

Re: Colisão entre objetos

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.
avatar
Data de inscrição : 11/12/2008
Número de Mensagens : 121
Insígnias de JAM :

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

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

Re: Colisão entre objetos

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
avatar
Data de inscrição : 26/09/2008
Número de Mensagens : 890
Insígnias de JAM :

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

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

Re: Colisão entre objetos

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.
avatar
Data de inscrição : 11/12/2008
Número de Mensagens : 121
Insígnias de JAM :

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

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

Re: Colisão entre objetos

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
avatar
Data de inscrição : 03/08/2008
Número de Mensagens : 1156
Insígnias de JAM :

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

Prêmios
   : 1
   :
   :
Ver perfil do usuáriohttp://www.ciganospictures.hd1.com.br

Re: Colisão entre objetos

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!
avatar
Data de inscrição : 11/12/2008
Número de Mensagens : 121
Insígnias de JAM :

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

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

Re: Colisão entre objetos

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