Entrar
Últimos assuntos
» Retorno da GMBR!!!por theguitarmester Ter 19 Mar 2024, 22:38
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Mudar cor de apenas uma palavra
por lunalol Sex 01 Mar 2024, 13:42
» 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
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16
» a funçao approach ainda existe?
por PEDRINDEV Ter 26 Dez 2023, 20:05
» Inimigo ataca até por trás! >:(
por saim Sex 22 Dez 2023, 08:55
» [RESOLVIDO]Spawn após morte
por Deception_1999 Dom 17 Dez 2023, 16:39
» Remunerado $$$ - Procuro programador para ajudar a "montar" um jogo
por theguitarmester Sáb 02 Dez 2023, 16:28
» Game maker nao abre
por Cerf Dom 26 Nov 2023, 12:01
[Resolvido] Colisão com formas do Draw
3 participantes
Página 1 de 1
[Resolvido] Colisão com formas do Draw
Eai pessoal!
Estou desenvolvendo um projeto cujo objetivo do jogador é não ser pego pelas câmeras.
Para criar o campo de visão da câmera, criei um objeto que não usa sprite, mas para representá-lo, criei um desenho a partir do comando draw_line_color().
O que eu quero, é que quando o objeto do jogador colidir com esse desenho, ele se auto-destroir, para isso, usei o comando instance_destroy(). Tudo deveria acontecer do jeito que esperava, mas não aconteceu. Simplesmente o objeto do jogador ignora esse evento, e percorre a fase como se não houvesse o evento de colisão.
Gostaria que alguém me ajudasse a solucionar esse problema.
Código-Fonte
Até!
Estou desenvolvendo um projeto cujo objetivo do jogador é não ser pego pelas câmeras.
Para criar o campo de visão da câmera, criei um objeto que não usa sprite, mas para representá-lo, criei um desenho a partir do comando draw_line_color().
O que eu quero, é que quando o objeto do jogador colidir com esse desenho, ele se auto-destroir, para isso, usei o comando instance_destroy(). Tudo deveria acontecer do jeito que esperava, mas não aconteceu. Simplesmente o objeto do jogador ignora esse evento, e percorre a fase como se não houvesse o evento de colisão.
Gostaria que alguém me ajudasse a solucionar esse problema.
Código-Fonte
Até!
Última edição por Golpe Baixo em Dom 20 Nov 2011, 15:41, editado 2 vez(es)
Re: [Resolvido] Colisão com formas do Draw
Você pode criar uma sprite similar a forma que é criada no draw,caso o draw line seja fixo. Assim pode usa-lo como máscara.......
Mas caso queira algo mas automático teras que usar o x é y do objeto é calcular o raio e redimensionar uma sprite de máscara.
flw
Mas caso queira algo mas automático teras que usar o x é y do objeto é calcular o raio e redimensionar uma sprite de máscara.
flw
Convidad- Convidado
Re: [Resolvido] Colisão com formas do Draw
TRFN escreveu:Você pode criar uma sprite similar a forma que é criada no draw,caso o draw line seja fixo. Assim pode usa-lo como máscara.......
Mas caso queira algo mas automático teras que usar o x é y do objeto é calcular o raio e redimensionar uma sprite de máscara.
flw
Creio que desse jeito vai ser complicado de mais, pois o comando draw_line_color() não é fixo porque os argumentos mudam de acordo com o movimento de um outro objeto. Segue o código-fonte do protótipo do projeto:
Download
Re: [Resolvido] Colisão com formas do Draw
Basta usar collision_line. Vou explicar.
No seu jogo você desenhou várias linhas e isso complica.
Essa é a função:
collision_line(x1,y1,x2,y2,obj,prec,notme)
Ela checa se há uma instância do objeto obj entre os dois pontos.
Prec = Se quer que colida com a sprite coloque 1, mas se quiser que colida com a Bounding Box, coloque 0.
Notme = coloque 1 para que ignore o objeto que chamou a função
Então coloque no Objeto Linha:
No seu jogo você desenhou várias linhas e isso complica.
Essa é a função:
collision_line(x1,y1,x2,y2,obj,prec,notme)
Ela checa se há uma instância do objeto obj entre os dois pontos.
Prec = Se quer que colida com a sprite coloque 1, mas se quiser que colida com a Bounding Box, coloque 0.
Notme = coloque 1 para que ignore o objeto que chamou a função
Então coloque no Objeto Linha:
- Código:
if collision_line(x_inicial_linha,y_inicial_linha,x_final_linha,y_final_linha, obj_player, 0, 1){
with(player) instance_destroy();
}
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:
Re: [Resolvido] Colisão com formas do Draw
Pedrø escreveu:Basta usar collision_line. Vou explicar.
No seu jogo você desenhou várias linhas e isso complica.
Essa é a função:
collision_line(x1,y1,x2,y2,obj,prec,notme)
Ela checa se há uma instância do objeto obj entre os dois pontos.
Prec = Se quer que colida com a sprite coloque 1, mas se quiser que colida com a Bounding Box, coloque 0.
Notme = coloque 1 para que ignore o objeto que chamou a função
Então coloque no Objeto Linha:
- Código:
if collision_line(x_inicial_linha,y_inicial_linha,x_final_linha,y_final_linha, obj_player, 0, 1){
with(player) instance_destroy();
}
Vamos dizer que deu meio certo. Usei esse código para o campo de visão da Câmera 1 e funcionou perfeitamente. Já quando usei na Câmera 2, não funcionou. Creio que se você baixar (vide mensagem principal) e analisar o código-fonte do protótipo, acho que seria mais fácil me ajudar.
Até!
Re: [Resolvido] Colisão com formas do Draw
o collision_line nao iria funcionar pq ele só 'colide' com outras sprites e nao com outros 'collision_line' ou seja vc teria que usar apenas um collision_line ... ou sprites mesmo
diego333- Data de inscrição : 06/10/2010
Reputação : 3
Número de Mensagens : 84
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido] Colisão com formas do Draw
diego333 escreveu:o collision_line nao iria funcionar pq ele só 'colide' com outras sprites e nao com outros 'collision_line' ou seja vc teria que usar apenas um collision_line ... ou sprites mesmo
Sim, o objeto que chama essa função não tem sprites, mas o objeto do jogador, que é o objeto a ser checado a colisão usa sprites sim.
Re: [Resolvido] Colisão com formas do Draw
Primeiramente, substitui aquele monte de draw_line_color por um único draw_triangle_color. Se quiser do outro jeito, não tem problema.
Eu usei um script chamado point_in_triangle e adaptei ao seu jogo, testando as colisões com base na bbox do sprite.
Problema resolvido:
http://dl.dropbox.com/u/38888521/PROJETO.gmk
Eu usei um script chamado point_in_triangle e adaptei ao seu jogo, testando as colisões com base na bbox do sprite.
Problema resolvido:
http://dl.dropbox.com/u/38888521/PROJETO.gmk
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:
[Resolvido] Colisão com formas do Draw
Pedrø escreveu:Primeiramente, substitui aquele monte de draw_line_color por um único draw_triangle_color. Se quiser do outro jeito, não tem problema.
Eu usei um script chamado point_in_triangle e adaptei ao seu jogo, testando as colisões com base na bbox do sprite.
Problema resolvido:
http://dl.dropbox.com/u/38888521/PROJETO.gmk
Opa!
Cara, muito obrigado. Funcionou perfeitamente, do jeito que eu queria. Sobre o modo que você solucionou o problema, está muito melhor do que antes, agora o código se resumiu em uma linha, e com o script ponto_triangulo() que você criou, ficou muito mais fácil fazer algo do tipo em outras situações semelhantes.
Mais uma vez, muito obrigado!
Podem trancar o tópico!
Até!
Tópicos semelhantes
» [Resolvido]Colisâo com Draw ?
» [Resolvido]Colisão de objetos draw
» [Resolvido]Problema com colisão usando Draw
» Formas de colisão
» [Resolvido]draw primitive e draw vertex...como usar?
» [Resolvido]Colisão de objetos draw
» [Resolvido]Problema com colisão usando Draw
» Formas de colisão
» [Resolvido]draw primitive e draw vertex...como usar?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|