Últimos assuntos
» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

» Ajuda para mecanismo do jogo
por Willy Dom 16 Jul 2017, 15:54

Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220918 mensagens em 30411 assuntos

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!
avatar
Mikasuki

Data de inscrição : 28/01/2010
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

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

Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

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

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 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 3

Ver perfil do usuário

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

Ranking : Sem avaliações
Notas recebidas : B
Data de inscrição : 28/02/2012
Número de Mensagens : 1908
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1

Prêmios
   : 2
   : 2
   : 1

Ver perfil do usuário 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

Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

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!
avatar
Mikasuki

Data de inscrição : 28/01/2010
Número de Mensagens : 33
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

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
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6036
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   :
   :
   :

Ver perfil do usuário

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