- Ranking :
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :x 0
x 0
x 0
Reputação : 254
Prêmios: 2
: 1
: 1
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:
Espero que tenha ajudado.
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.
Re: colission rectangle e colission circle
em Ter 11 Jan 2011, 13:34
mais o que é: notme, prec radius?
- Ranking :
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :x 1
x 0
x 0
Reputação : 177
Prêmios: 2
: 1
: 1
Re: colission rectangle e colission circle
em Ter 11 Jan 2011, 13:36
Veja se estas minhas aulas ajudam:
http://gmbr.forumeiros.com/t3562-tutorial-de-colisoes-parte-1
http://gmbr.forumeiros.com/game-maker-f36/tutorial-de-colisoes-parte-3-t3575.htm
FLWS!
http://gmbr.forumeiros.com/t3562-tutorial-de-colisoes-parte-1
http://gmbr.forumeiros.com/game-maker-f36/tutorial-de-colisoes-parte-3-t3575.htm
FLWS!
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
o nome dela: enemie
- Código:
draw_circle_color(x,y,20,c_red,c_black,false)
- Código:
draw_rectangle_color(x+35,y+35,x,y,c_orange,c_orange,c_maroon,c_maroon,false)
- Ranking :
Notas recebidas : B A
Data de inscrição : 20/12/2008
Número de Mensagens : 2516
Insígnias de JAM :x 1
x 0
x 0
Reputação : 177
Prêmios: 2
: 1
: 1
Re: colission rectangle e colission circle
em Ter 11 Jan 2011, 14:09
Tente colocar isso no player:
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:
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!
- 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!
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum