colission rectangle e colission circle

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

colission rectangle e colission circle

Mensagem por carotmaker em Ter 11 Jan 2011, 13:20

como funciona estes dois? Question Question Question

carotmaker

Ranking : Nota D
Número de Mensagens : 149
Idade : 18
Data de inscrição : 11/07/2010
Notas recebidas : D
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: colission rectangle e colission circle

Mensagem por Willy em Ter 11 Jan 2011, 13:32

Exite uma tradução do Help de GML aqui no forum, procure e baixe, ajuda muito numa hora dessas. Eu copiei a seção que você quer, conforme abaixo:

Pag 87:

Verificação de Colisão
Quando planejamos movimentos ou nos decidimos por certas ações, é freqüentemente importante ver se há colisões com outros objetos em certos lugares. As rotinas seguintes podem ser usadas para isto. Tudo nestas têm três argumentos em comum: O argumento obj pode ser um objeto, a palavra chave all, ou id de uma instância. O argumento prec indica se a verificação deveria ser „precisa‟ ou só baseado na caixa limite da instância. A verificação precisa só é feita quando a sprite para a instância tiver a configuração de verificação precisão de colisão. O argumento notme pode ser configurado para true indicando que a instância de chamada não deve ser conferida. Todas estas funções ou devolvem o id de uma das instâncias que colidem, ou eles devolvem um valor negativo quando não houver nenhuma colisão.
collision_point(x,y,obj,prec,notme) Esta função testa se no ponto (x,y) há uma colisão com entidades do objeto obj.
collision_rectangle(x1,y1,x2,y2,obj,prec,notme) Esta função testa se há uma colisão entre o retângulo (preenchido) com os cantos opostos indicados e entidades de objeto obj . Por exemplo, você pode usar isto para testar se uma área está livre de obstáculos.
collision_circle(xc,yc,radius,obj,prec,notme) Esta função testa se há uma colisão entre o círculo (preenchido) centrado na posição (xc,yc) com o determinado raio e entidades do objeto obj. Por exemplo, você pode usar isto para testar se há um objeto perto de uma localização
particular.
collision_ellipse(x1,y1,x2,y2,obj,prec,notme) Esta função testa se há uma colisão entre a elipse (preenchido) com os cantos opostos indicados e entidades do objeto obj.
collision_line(x1,y1,x2,y2,obj,prec,notme) Esta função testa se há uma colisão entre o segmento de linha de (x1,y1) para (x2,y2) e entidades do objeto obj. Esta é uma função poderosa. Você podem, por exemplo, usar para testar se uma instância pode ver outra instância conferindo se o segmento de linha entre eles cruza uma parede.

Espero que tenha ajudado.

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: colission rectangle e colission circle

Mensagem por carotmaker em Ter 11 Jan 2011, 13:34

mais o que é: notme, prec radius?

carotmaker

Ranking : Nota D
Número de Mensagens : 149
Idade : 18
Data de inscrição : 11/07/2010
Notas recebidas : D
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: colission rectangle e colission circle

Mensagem por Alex FC em Ter 11 Jan 2011, 13:36


Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: colission rectangle e colission circle

Mensagem por carotmaker em Ter 11 Jan 2011, 13:47

olha, o inimigo é uma esfera, sem sprite, este é o código dela:
o nome dela: enemie
Código:
draw_circle_color(x,y,20,c_red,c_black,false)
e o player é um quadrado, que o código é:
Código:
draw_rectangle_color(x+35,y+35,x,y,c_orange,c_orange,c_maroon,c_maroon,false)
como eu posso fazer pra quando o player encostar no enemie ele ser deletado?

carotmaker

Ranking : Nota D
Número de Mensagens : 149
Idade : 18
Data de inscrição : 11/07/2010
Notas recebidas : D
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: colission rectangle e colission circle

Mensagem por Alex FC em Ter 11 Jan 2011, 14:09

Tente colocar isso no player:

Código:
if collision_circle(x,y,20,enemie,1,1)
{
instance_destroy()
}

Mas não funcionar bem se o inimigo não tiver máscara de colisão. E ela só pode ser criada através de uma sprite. Então tente isso no create do inimigo:

Código:
sur=surface_create(35,35)

surface_set_target(sur)

draw_rectangle(0,0,35,35)

surface_reset_target()

mask_index=sprite_create_from_surface(sur,0,0,35,35,0,0,0,0)

Caso esteja tendo muitos problemas dê uma olhadinha neste meu programa que pode te ajudar um pouco:

http://gmbr.forumeiros.com/t13214-image-to-gml-v09-transforme-imagens-em-codigos

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: colission rectangle e colission circle

Mensagem por Conteúdo patrocinado Hoje à(s) 22:26


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