Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Sr.Mojon en Septiembre 17, 2018, 04:39:33 AM

Título: rotar sprite al jugador
Publicado por: Sr.Mojon en Septiembre 17, 2018, 04:39:33 AM
hola, como yo haría para que un sprite cuando se cree se cree viendo al jugador.

cuando digo ver no se que lo va a mirar siempre(osea que el sprite rote depende a donde esta el jugador) lo que dijo es que el sprite vea hacia la ultima ves que miro al jugador ¿me entienden???
Título: Re:rotar sprite al jugador
Publicado por: 3dgeminis en Septiembre 17, 2018, 08:21:44 AM
Solo debes obtener la direccion en el evento CREATE usando la funcion point_direction
Título: Re:rotar sprite al jugador
Publicado por: Sr.Mojon en Septiembre 17, 2018, 03:21:56 PM
algo como esto??

point_direction(obj_jugador.x,obj_jugador.y,x,y)
Título: Re:rotar sprite al jugador
Publicado por: 3dgeminis en Septiembre 17, 2018, 09:06:49 PM
Si, pero asi como esta mirara a donde ve el jugador, no hacia el jugador, solo inviertelo x,y,jugador.x,jugador.y
Título: Re:rotar sprite al jugador
Publicado por: Sr.Mojon en Septiembre 18, 2018, 02:44:15 AM
no pasa nada XD  ve, lo que yo estoy haciendo es que cuando un enemigo muera se cree ese obj en donde murió(yo eso lo hice) pero quiero que el cadáver se cree mirando a la ultima vez que murió en enemigo
Título: Re:rotar sprite al jugador
Publicado por: BssString en Septiembre 18, 2018, 03:28:58 AM
Hola Sr.Mojon.

Cuando usas la función "instance_create" (o las nuevas del GMS2), estas te devuelven el ID del objeto que acaban de crear.
Si creas el objeto cadaver desde el objeto original, puedes tomar ese ID que se acaba de crear y asignarle la variable "image_angle" según la "image_angle" que tenía el objeto original con la función "with".

Ejemplo de lo que acabo de decir sería algo así:
var cadaver = instance_create(x,y,obj_cadaver) //Crea el objeto "obj_cadaver" y guarda su ID en la variable local "cadaver"
with (cadaver) {
image_angle = other.image_angle //La nueva image_angle del objeto "cadaver" va a ser la image_angle del objeto que llama el código
}


Saludos
Título: Re:rotar sprite al jugador
Publicado por: Sr.Mojon en Septiembre 18, 2018, 03:39:45 AM
algo asi:

en el evento step del enemigo

if (vidas_enemigo<1) instance_create(x,y,obj_sangre){

var cadaver = instance_create(x,y,obj_sangre) //Crea el objeto "obj_cadaver" y guarda su ID en la variable local "cadaver"
with (cadaver) {
image_angle = other.image_angle //La nueva image_angle del objeto "cadaver" va a ser la image_angle del objeto que llama el código
}
}
Título: Re:rotar sprite al jugador
Publicado por: BssString en Septiembre 18, 2018, 03:44:35 AM
Hola Sr.Mojon

Algo parecido a eso, en realidad pusiste el código fuera de la condición, así que se te va a ejecutar siempre.

if (vidas_enemigo<1) {
instance_create(x,y,obj_sangre)
var cadaver = instance_create(x,y,obj_sangre) //Crea el objeto "obj_cadaver" y guarda su ID en la variable local "cadaver"
with (cadaver) {
image_angle = other.image_angle //La nueva image_angle del objeto "cadaver" va a ser la image_angle del objeto que llama el código
}
}


Recuerda usar "instance_destroy" también para destruir al objeto original, sino estarás creando infinitos cadáveres una vez por cada step.

Saludos
Título: Re:rotar sprite al jugador
Publicado por: Sr.Mojon en Septiembre 18, 2018, 06:31:54 PM
si se crean bien ahora pero todos los cadaveres se crean viendo hacia abajo
Título: Re:rotar sprite al jugador
Publicado por: BssString en Septiembre 18, 2018, 06:42:38 PM
hola Sr.Mojon

Eso te pasa entonces porque no estás usando la image_angle de Game Maker y estás dibujando a tu sprite con tu propia variable de giro. Para corregir el error llama a tu variable cuando crees el cadaver

Saludos
Título: Re:rotar sprite al jugador
Publicado por: Sr.Mojon en Septiembre 18, 2018, 08:17:31 PM
como se hace esoXD
Título: Re:rotar sprite al jugador
Publicado por: BssString en Septiembre 18, 2018, 09:00:13 PM
Hola Sr.Mojon

Con el mismo código anterior. Sólo cambia el "image_angle" que estás leyendo del objeto nuevo por tu variable de ángulo que estés usando
Esta línea:
image_angle = other.image_angle
Déjala como:
image_angle = other.tu_variable_de_angulo_aqui

Saludos
Título: Re:rotar sprite al jugador
Publicado por: Sr.Mojon en Septiembre 18, 2018, 09:41:24 PM
hablas de la variable cadaver??

if (vidas_enemigo<1) {
instance_create(x,y,obj_sangre)
var cadaver = instance_create(x,y,obj_sangre) //Crea el objeto "obj_cadaver" y guarda su ID en la variable local "cadaver"
with (cadaver) {
image_angle = other.cadaver //La nueva image_angle del objeto "cadaver" va a ser la image_angle del objeto que llama el código
}
}

cuando mato a un enemigo me sale un error que no encuentra la variable