Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

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: Función para esperar cierto tiempo  (Leído 151 veces)

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

Desconectado T1ag0

  • Habitual
  • *
  • Puntos: 38
  • Mensajes: 20
    • Ver Perfil
en: Noviembre 21, 2020, 04:25:31 am
Hola, estoy haciendo un juego y lo programe para que cada ves colisione con un objeto se muestre un texto y se reinicie el juego, pero el problema es que e texto apenas se muestra ya que se reinicia muy rápido, quisiera saber alguna función de esperar cierto tiempo o algo que permita mostrar el texto por un tiempo y después reiniciar el juego

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado T789

Respuesta #1 en: Noviembre 21, 2020, 05:09:06 am
Saludos T1ag0

En GameMaker existe una funcion llamada sleep() que sirve para detener el juego un determinado numero de milisegundos, claro, esta funcion solo lo detiene en el mismo paso, y digamos que si quieres dibujar un texto antes de ejecutarla, entonces prácticamente este texto se ejecutara despues de que hayan pasado el numero de milisegundos.
Por suerte he creado un script que hace exactamente lo mismo, a diferencia de que puedo añadirle varias cosillas extras.
Acontinuacion enmarco 3 distintas versiones del script:
///sleep_color(miliseg, color)
var i;
i = 0;
do {
  draw_set_color(argument1)
  draw_rectangle(0, 0, room_width, room_height, 0)
  screen_refresh()
  i += 1;
} until (i >= argument0)
///sleep_text(miliseg, x, y, text)
var i;
i = 0;
do {
  draw_text(argument1, argument2, argument3)
  screen_refresh()
  i += 1;
} until (i >= argument0)
///sleep_sprite(miliseg, sprite, subimg, x, y)
var i;
i = 0;
do {
  draw_sprite(argument1, argument2, argument3, argument4)
  screen_refresh()
  i += 1;
} until (i >= argument0)
No se si la funcion screen_refresh() exista en versiones posteriores a GM8, si no es asi, entonces sugiero uses sleep(1) en cada script en lugar de screen_refresh(); claro, tampoco se si al cambiarlo se ignore lo demas, pero para hacerlo mas seguro, sugiero que la parte de la verificacion la hagas en el evento draw. Osea que si es una collision la hagas en el evento draw en vez de un evento step

 
Los siguientes usuarios dieron las gracias a este tema: T1ag0


Desconectado T1ag0

  • Habitual
  • *
  • Puntos: 38
  • Mensajes: 20
    • Ver Perfil
Respuesta #2 en: Noviembre 21, 2020, 03:59:24 pm
Saludos T1ag0

En GameMaker existe una funcion llamada sleep() que sirve para detener el juego un determinado numero de milisegundos, claro, esta funcion solo lo detiene en el mismo paso, y digamos que si quieres dibujar un texto antes de ejecutarla, entonces prácticamente este texto se ejecutara despues de que hayan pasado el numero de milisegundos.
Por suerte he creado un script que hace exactamente lo mismo, a diferencia de que puedo añadirle varias cosillas extras.
Acontinuacion enmarco 3 distintas versiones del script:
///sleep_color(miliseg, color)
var i;
i = 0;
do {
  draw_set_color(argument1)
  draw_rectangle(0, 0, room_width, room_height, 0)
  screen_refresh()
  i += 1;
} until (i >= argument0)
///sleep_text(miliseg, x, y, text)
var i;
i = 0;
do {
  draw_text(argument1, argument2, argument3)
  screen_refresh()
  i += 1;
} until (i >= argument0)
///sleep_sprite(miliseg, sprite, subimg, x, y)
var i;
i = 0;
do {
  draw_sprite(argument1, argument2, argument3, argument4)
  screen_refresh()
  i += 1;
} until (i >= argument0)
No se si la funcion screen_refresh() exista en versiones posteriores a GM8, si no es asi, entonces sugiero uses sleep(1) en cada script en lugar de screen_refresh(); claro, tampoco se si al cambiarlo se ignore lo demas, pero para hacerlo mas seguro, sugiero que la parte de la verificacion la hagas en el evento draw. Osea que si es una collision la hagas en el evento draw en vez de un evento step
Gracias bro