Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Desactivar temporalmente el evento draw  (Leído 427 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Cher3

en: Septiembre 14, 2019, 05:08:37 pm
¡Buenas!Me ocurre el siguiente problema, tengo un objeto el cual es una pequeña montaña de nieve, mi objetivo es que cuando presione "A" aparezca un mensaje, el personaje se pare sin poder moverse y cuando vuelva a pulsar "A"Pueda moverme y no aparezca el mensaje.

He logrado hacer que el personaje se pare y que aparezca todo el mensaje, sin embargo no consigo desactivar el mensaje del evento draw, dejo por aquí el codigo.
(estoy usando varios objetos).

(EVENTO PRINCIPAL DEL OBJETO DE LA MONTAÑA DE NIEVE)

-Create:
Mensaje = "Es un montón de nieve,parece que aún no se esta derritiendo."
if keyboard_check_pressed(ord("A")) and global.objeto = 2 {global.objeto = 0};

-Draw:

if global.objeto = 2 {
draw_sprite(Cuadro_texto_objeto,0,0,400)
//Caja de texto
draw_set_font(Dialogo);
draw_set_color(c_white);

//Contenido del texto
draw_set_halign(fa_left)
draw_text_ext(50, 480 ,Mensaje,30,700);

}
-Press_keyboard
global.objeto = 2
alarm[0] = 60

En resumen lo único que hace arriba es que cuando global.objeto es igual a 2 puedo ver el mensaje y el personaje se para.

(OBJETO ACTIVADOR DESACTIVADOR)
-create
if keyboard_check_pressed(ord("A")) and global.objeto = 2 {instance_deactivate_object(Evento_nieve)};
if keyboard_check_pressed(ord("A")) and global.objeto = 0 {instance_activate_object(Evento_nieve)};


No necesito ayuda ahora mismo con el movimiento del personaje así que solo necesito saber como desactivar unicamente el evento draw, muchas gracias de antemano por la ayuda <3

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado MateG_

Respuesta #1 en: Septiembre 14, 2019, 06:49:33 pm
Buenas! Por lo que veo la variable que activa/desactiva el dibujado del cuadro de texto es global.objeto, que tiene que ser igual a 2 para que el mensaje aparezca. No estoy seguro de haber entendido bien tu código pero creo que el principal problema es que pusiste la línea que desactiva el evento draw (if keyboard_check_pressed(ord("A")) and global.objeto = 2 {global.objeto = 0};) en el evento create, por lo que solo podrías quitar el texto en el instante en el que el objeto del evento de la montaña se crea. Si es así entonces lo que te recomendaría sería el mover esa línea código a un evento step o incluso al propio evento draw en el que dibujás el texto.

Si esa línea de código tiene otra utilidad entonces el problema sería el mismo, que falta regresar la variable global.objeto a 0 una vez que el evento de la montaña termine. (Al menos que lo hagas en ese Alarm[0], en ese caso me faltaría más información para poder ayudarte).

Espero que te haya servido! Saludos! 

 


Desconectado Cher3

Respuesta #2 en: Septiembre 15, 2019, 06:47:10 pm
Gracias, he hecho lo que me has dicho y lo he colocado en el evento step, la verdad es que medio funciona ya que al apretar la letra "A" el mensaje junto a al cuadro de texto desaparece sin embargo es durante unos instantes, supongo que el codigo fallará en otra cosa pero lo mas gordo lo tengo arreglado gracias <3