Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: zerozerito en Mayo 01, 2010, 04:33:43 AM

Título: Problemas en colisiones 3D
Publicado por: zerozerito en Mayo 01, 2010, 04:33:43 AM
Como puedo hacer que mi jugador se destruya (ejemplo) al tocar un enemigo.
Me refiero por que hize que mi jugador saltara un peque?o enemigo 3D pero aun asi me mata.
Lei el manual y si decia esto de problemas en colisiones.
como puedo hacer que mi jugador realmente muera cuando si esta en contacto con el enemigo.
Gracias espero me ayuden.
Título: Re: Problemas en colisiones 3D
Publicado por: Ge en Mayo 03, 2010, 02:39:39 AM
Game maker, no soporta coliciones en 3d.

Existen alternativas, por ejemplo, utilizar una exencion en DLL. Esta podes encontrarla buscando en http://gmc.yoyogames.com/.  :GM8:

Otra alternativa para detectar la colicion dependiendo de la altura, consiste en poner en el control de salud del jugador.

if(z < Enemigo.z+16)
{
health -= 100
}


En codigo iria dentro de la colicion con el enemigo, su funcion seria detectar cuando la pocision Z del jugador, es menor a la pocision Z+16 del enemigo. 16, tendrias que reemplazarlo por el valor de la altura del enemigo.

No se me ocurre otra alternativa, pero igual tendrias que probar con utilizar un DLL  :D
Título: Re: Problemas en colisiones 3D
Publicado por: romon_28 en Mayo 04, 2010, 04:50:43 PM
cuando se trata de colisiones hay que tener en cuenta las dimensiones del juego. En un Juego 2D las dimenscines obviamente son 2 X e Y con esto valores podemos averiguar si esta conlisionando con otro objeto o no
pero en un juego 3D se nos agrega un dimencion mas Z generalmente se usa para marcar la altura en un juego de ese tipo (eso no quiere decir que no se podria cambiar) asi que tendras que ponerle una altura de a cada objeto que queres que colisione algo asi:

Obj_Enemigo_1
Ev_create

z=0
Alturo = 32


con la altura ya podemos hacer que tenga un cuerpo en forma de cubo o algo asi.

Entonses ahora si podemos decir que:


if z <= Obj_Enemigo.Alturo
|| z >  Obj_Enemigo.z
{
Vida -= 1
}


Esta es solo una forma ni se si funca ya que no tengo el gm ahora mismo

Suerte!!!


!-+-+- Romon -+-+-!