Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: emeaeneu en Septiembre 04, 2015, 05:28:51 PM

Título: Apoyo en incluir imagen con Draw_Sprite
Publicado por: emeaeneu en Septiembre 04, 2015, 05:28:51 PM
Estimados.

Tengo un problema, quiero colocarle una imagen final a mi juego cada vez que el personaje llegue al final de un nivel.

Me explico mejor, que una vez que haya terminado el nivel, antes de cambiar de room, aparezca un sprite (como el que adjunto) que indique que has completado el nivel con exito. ¿Lo puedo hacer con función alarm y con draw_sprite?

Gracias.
:GMS:
Título: Re:Apoyo en incluir imagen con Draw_Sprite
Publicado por: penumbra en Septiembre 04, 2015, 08:17:26 PM
Sí, se puede hacer con alarma o sin alarma, pero es necesario saber cómo reconoce tu juego que se ha completado un nivel, o qué variable usas para saberlo. Una vez sabiendo eso, en DRAW se usaría una sentencia similar a:
[gml]
if (nivel_completado)
      draw_sprite(sprite, subimagen, x, y)
[/gml]

Otro detallle es que la imagen tiene botones adicionales, entonces tendrías que crear objetos (y sus respectivos sprites) para cada botón, de manera que cada uno reaccionara cuando se hace click sobre él. Esto se puede hacer también sin botones, pero entonces se tendría que escribir código para detectar en qué zona del sprite se hizo click y en base a ello, lanzar una acción.
Título: Re:Apoyo en incluir imagen con Draw_Sprite
Publicado por: emeaeneu en Septiembre 04, 2015, 09:24:14 PM
Penumbra, gracias por la respuesta. Actualmente el codigo que estoy usando para saber que se termino el nivel es simplemente una colision con un objeto llamado next level al final del nivel que le dara el go to_next_room.

Adjunto pantallazo.
Título: Re:Apoyo en incluir imagen con Draw_Sprite
Publicado por: penumbra en Septiembre 04, 2015, 09:40:21 PM
en CREATE
[gml]mensaje = 0[/gml]

En el evento de colisión con next level
[gml]
if (!mensaje)
{
     alarm[1] = room_speed * 5
     mensaje = true
}
[/gml]
en el evento de alarma[1]
[gml]
mensaje = false
room_goto_next()
[/gml]   

en el evento DRAW
[gml]   
if (mensaje)
     draw_sprite(blah, blah)    //Dibujar el sprite de final de nivel
[/gml]   
Título: Re:Apoyo en incluir imagen con Draw_Sprite
Publicado por: emeaeneu en Septiembre 04, 2015, 10:11:37 PM
Probe y no funcionó, mas bien desapareció el personaje principal no tenía sprite.

Volveré a intentar a ver si coloqué algo mal en el código.
Título: Re:Apoyo en incluir imagen con Draw_Sprite
Publicado por: penumbra en Septiembre 04, 2015, 10:18:41 PM
El personaje desaparece porque estás usando una función DRAW en el evento draw. Esto se puede corregir o usando draw_self() en el evento draw del personaje o usando otro objeto para dibujar el sprite (generalmente un controlador)

por ejemplo (desde un controlador)
[gml]
if (New_player.mensaje)
     draw_sprite(blah, blah)    //Dibujar el sprite de final de nivel
[/gml]

deberías usar el prefijo obj_u ob_antes del nombre de tus objetos. leer New_player o next_level confunde un poco.