GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Problema ao entrar por uma porta e voltar por ela
por macmilam Ontem à(s) 12:17

» Alguém aqui já ganha dinheiro com seus games?
por theguitarmester Ter 30 Abr 2024, 11:43

» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16

» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21


como fazer uma colisao em códigos

3 participantes

Ir para baixo

como fazer uma colisao em códigos Empty como fazer uma colisao em códigos

Mensagem por makgamer Seg 01 Mar 2010, 19:53

bom.. a pergunta ta no nome do tópico XD
makgamer
makgamer

Games Ranking : Nota D

Notas recebidas : D
Data de inscrição : 29/03/2009
Reputação : 7
Número de Mensagens : 941
Prêmios : como fazer uma colisao em códigos Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 2.0
  • Unity
  • Java
  • C#
  • Javascript
  • RPG Maker
  • C ou C++
  • Outros


Ir para o topo Ir para baixo

como fazer uma colisao em códigos Empty Re: como fazer uma colisao em códigos

Mensagem por PedroX Seg 01 Mar 2010, 20:10

if place_meeting(x,y,obj){}
Código:
Vc pode usar x+1 p/colisionar na direita,x-1 p/esquerda e etc...

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : como fazer uma colisao em códigos Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

como fazer uma colisao em códigos Empty Re: como fazer uma colisao em códigos

Mensagem por vinians Seg 01 Mar 2010, 20:18

Bom voce tambem pode usar cálculos matemáticos. Podemos usar a formula da distancia. Primeiro clique no botão CENTER la na definição do sprite.
Depois supondo que tenhamos 2 objetos: ob1 e ob2. E que eles tenham 32 x 32 de tamanho. Sabento que os pontos estão centralizados basta usar o teorema de Pitágoras no Evento Step:
Código:

h := sqrt(abs(ob2.x - ob1.x) + abs(ob2.y - ob1.y));
if ( h < 16)
{
    //colisao aqui
}
Tambem tem como fazer com colisão de retangulos sobrepostos, se te interessar posso postar aqui.
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2715
Prêmios : como fazer uma colisao em códigos Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

como fazer uma colisao em códigos Empty Re: como fazer uma colisao em códigos

Mensagem por PedroX Seg 01 Mar 2010, 20:46

eu me interesso...
vc pode postar?

_________________


Leia o Manual do Iniciante e a Lista de Tutoriais, para aprender bastante sobre o GM.
Recomendo o Manual completo das colisões, bem útil.
O exemplo Criar um chat (banir, kickar, etc) é interessante.

Para seu jogo ficar rápido e legal, aprenda a Aumentar o desempenho do seu jogo.

Aprenda a calcular a velocidade de suas animações


Entre para o Clube do Inglês:
PedroX
PedroX

Games Ranking : Nota B

Notas recebidas : C+B
Data de inscrição : 26/07/2008
Reputação : 311
Número de Mensagens : 6087
Prêmios : como fazer uma colisao em códigos Empty

Medalhas x 0 Tutoriais x 17 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

https://web.whatsapp.com/send?phone=5519995935953&text=Pedro

Ir para o topo Ir para baixo

como fazer uma colisao em códigos Empty Re: como fazer uma colisao em códigos

Mensagem por vinians Seg 01 Mar 2010, 22:03

Claro!, então a colisão baseada em bounding boxes é o tipo usado pelo GM quando voce nao seleciona "Precise Collision Check". Mas podemos fazer uma um pouco mais simples criando um script assim:
Crie um novo script e o chame de "colidindo"
Coloque este código:
Código:

var ob1, ob2, sp1, sp2, w1, w2, h1, h2;
ob1 = argument0;
ob2 = argument1;
sp1 = ob1.sprite_index;
sp2 = ob2.sprite_index;
w1 = sprite_get_width(sp1);
w2 = sprite_get_width(sp2);
h1 = sprite_get_height(sp1);
h2 = sprite_get_height(sp2);
if (ob1.x + w1 < ob2.x) return false;
if (ob1.y + h1 < ob2.y) return false;
if (ob1.x > ob2.x + w2) return false;
if (ob1.y > ob2.y + h2) return false;
return true;
Agora é só voce usar no Evento STEP de alguma instancia para verificar a colisão assim:
Código:

if (colidindo(obj1.id, obj2.id))
{
    //faça algo caso esteja colidindo.
}
Essa rotina testar se um retangulo definido pela posicao x, y de um objeto mais o tamanho de seu sprite esbarre no retangulo do outro.
Além disso ela é projetada pra ser rapida pois ja da retorno tao logo verifique a impossibilidade de colisao.
Assim voce pode criar o seu proprio evento de colisão.
obs: Voce precisa das "instancia" e não do "objeto" por isso usei o "'.id"
vinians
vinians

Games Ranking : Nota B

Notas recebidas : B-C-A-C
Data de inscrição : 18/09/2008
Reputação : 90
Número de Mensagens : 2715
Prêmios : como fazer uma colisao em códigos Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 2 Bronze x 1

Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Plataformas :
  • Game Maker 8.0 ou 8.1
  • Game Maker Studio 1.4
  • Game Maker Studio 2.0
  • Construct 2
  • Java
  • C#
  • Javascript
  • C ou C++
  • Outros


https://vinians.itch.io

Ir para o topo Ir para baixo

como fazer uma colisao em códigos Empty Re: como fazer uma colisao em códigos

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos