Conectar-se
Quem está conectado
27 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 26 Visitantes

CRP-Max

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 28/01/2010
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

collision via gml

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!
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

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

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

Re: collision via gml

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)
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

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

Re: collision via gml

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
}
avatar
Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

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

Prêmios
   : 2
   : 2
   : 1
Ver perfil do usuáriohttp://guitarmester.no.comunidades.net/index.php?pagina=19362978

Re: collision via gml

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
    }
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

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

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

Re: collision via gml

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+
avatar
Data de inscrição : 28/01/2010
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: collision via gml

em Sex 30 Nov 2012, 01:27
Muito obrigado saim, funcionou perfeitamente! Obrigado a todos pela atenção!

Abraço!
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

Re: collision via gml

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