Conectar-se
Quem está conectado
30 usuários online :: 2 usuários cadastrados, Nenhum Invisível e 28 Visitantes

diassis, rafaelviodres1

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 11/07/2010
Número de Mensagens : 149
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

colission rectangle e colission circle

em Ter 11 Jan 2011, 13:20
como funciona estes dois? Question Question Question
avatar
Ranking : Nota A
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1835
Insígnias de JAM :

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

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://willy-gmbr.blogspot.com/

Re: colission rectangle e colission circle

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.
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 11/07/2010
Número de Mensagens : 149
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: colission rectangle e colission circle

em Ter 11 Jan 2011, 13:34
mais o que é: notme, prec radius?
avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

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

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

Re: colission rectangle e colission circle

em Ter 11 Jan 2011, 13:36
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 11/07/2010
Número de Mensagens : 149
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Ver perfil do usuário

Re: colission rectangle e colission circle

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?
avatar
Ranking : Nota A
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :

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

Prêmios
   : 2
   : 1
   : 1
Ver perfil do usuáriohttp://redscreensoft.blogspot.com

Re: colission rectangle e colission circle

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