collision via gml

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

collision via gml

Mensagem por Mikasuki em Qui 29 Nov 2012, 01:23

Seguinte galera: meu projeto tem muitos objects, muitos mesmo. Eu preciso, via gml, checar se há uma colisão com outro objeto QUALQUER, ou seja, não pode ser feito utilizando o place_metting por que com ele é necessário especificar o objeto que vou estar colidindo. Eu preciso que o evento ocorra mediante a colisão com QUALQUER um dos vários objetos que tenho. Já tentei usar isso: "!position_empty(x,y)", funcionou, mas só em partes: "x,y" corresponde ao pixel "origin" da sprite, portanto, o evento que eu quero só ocorre quando há colisão com o pixel "origin" não quando há colisão com a collision mask da sprite, que é exatamente o que eu preciso.
Frisando: preciso que o evento ocorra mediante a qualquer colisão com QUALQUER objeto. Quem sabe essa?

Vlw!

Mikasuki

Número de Mensagens : 33
Data de inscrição : 28/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: collision via gml

Mensagem por GameMakerTutoriais em Qui 29 Nov 2012, 07:45


Um jeito que acho que daria certo é criar um objeto pai e usar como parente pra todos, daí bastaria criar um evento de colisão comum com o objeto pai. Só que como você disse que tem muitos objetos então é possível que dê trabalho associar toda a árvore...

---------- Edit ----------

Fiz uma gambiarra danada... Jeito bem mais simples:

Código:
if action_if_collision(x, y, all)
{
// Colidiu com alguém
}


Última edição por Borderline em Qui 29 Nov 2012, 09:12, editado 1 vez(es)

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: collision via gml

Mensagem por saim em Qui 29 Nov 2012, 08:51

Gente, vocês estão esquecendo do objeto "all".
Código:
if place_meeting(x, y, all){
//colisão com alguém
}

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: collision via gml

Mensagem por theguitarmester em Qui 29 Nov 2012, 13:26

Não conhecia esse code action_if_collision, mas vejo que ele é um Código antigo e está Oculto no GM8, porém existe. pelo que vejo, deve fazer a mesma coisa que o Place_meting, então é melhor não usá-lo, pode ocasionar Incompatibilidades talves com o Studio.

Use o Código do Saim que terá o Resultado esperado, ou use esse:
Código:
    if !place_empty(x,y){
//Ação  desejada
    }

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: collision via gml

Mensagem por GameMakerTutoriais em Qui 29 Nov 2012, 15:54


Eu peguei direto da lista de actions. Conhecia a action, mas nunca tinha usado a place_meeting, foi bom porque aprendi também! Fiz uma confusão aí, mas o correto é o código que o Saim postou.

T+

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: collision via gml

Mensagem por Mikasuki em Sex 30 Nov 2012, 01:27

Muito obrigado saim, funcionou perfeitamente! Obrigado a todos pela atenção!

Abraço!

Mikasuki

Número de Mensagens : 33
Data de inscrição : 28/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: collision via gml

Mensagem por PedroX em Sex 30 Nov 2012, 16:21

Na minha assinatura há um link para um tutorial sobre colisões. Recomendo que leia.

@theguitarmaster -> esse código oculto é o mesmo que o D&D, só que em código.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: collision via gml

Mensagem por Conteúdo patrocinado Hoje à(s) 12:45


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