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: Bug al cargar partida y cambiar fondo  (Leído 233 veces)

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

Desconectado Marth

en: Junio 05, 2019, 11:10:27 pm
Veran, digamos que tengo un RPG en el que hay una pantalla de escenario y otra de combate.
El combate se realiza en el room de escenario, solo que cambiando al fondo de batalla.
tengo una variable global.escenario, que almacena el escenario en modo combate.

Y al comienzo del room, pongo este código para almacenar el fondo del escenario:
global.f=layer_background_get_id(layer_get_id("Background"))
global.vuelta=layer_background_get_sprite(global.f)


Cuando entro en un combate, uso esto para cambiar al fondo de combate:
layer_background_change(global.f,global.escenario)

Por cierto, he hecho que nada más cargar se ejecute este código:
global.f=layer_background_get_id(layer_get_id("Background"))
show_message(global.f)

Me da -1, pero si lo uso al cambiar a otro room, me da 82.

Una vez el combate acaba, uso esto:
layer_background_change(global.f,global.vuelta)

Eso si, he notado que si por ejemplo guardo (game_save) y salgo del juego en mitad de un combate, vuelvo a ejecutar el juego y cargo esa partida (game_load), una vez gano el combate, el fondo no cambia al del escenario.
Este problema se soluciona si cambio a otro room.

Por cierto, he hecho que al cargar partida se ejecute este código:
global.f=layer_background_get_id(layer_get_id("Background"))
show_message(global.f)

Me da -1, pero si lo uso al cambiar de room, me da 82.
« última modificación: Junio 08, 2019, 09:33:05 pm por Marth »

Si piensas que los usuarios de tus programas son idiotas, sólo los idiotas usarán tus programas.

-Linus Torvalds ("Padre" de Linux)-
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Marth

Respuesta #1 en: Junio 08, 2019, 09:34:55 pm
He actualizado para incluir un proyecto en el que se puede ver lo que digo.
El programa permite cambiar de fondo pulsando izquierda y derecha, mientras que los botones de izquierda y derecha guarda y carga la partida.
Guarden, carguen y intenten cambiar de fondo para ver el problema.

Si piensas que los usuarios de tus programas son idiotas, sólo los idiotas usarán tus programas.

-Linus Torvalds ("Padre" de Linux)-
 


Desconectado Frenzy

Respuesta #2 en: Junio 09, 2019, 06:58:00 pm
Te recomiendo tratar de evitar usar las funciones Game_save y Game_load de GM como método de almacenamiento definitivo, ya que son muy limitadas y pueden dar problemas.
La misma documentación te recomienda solo usarlas como buffer para cargar partidas cuando sigues dentro del juego, ya que al salir, muchos datos del juego no se guardan con Game_Save

 


Desconectado Marth

Respuesta #3 en: Junio 11, 2019, 11:01:10 pm
Te recomiendo tratar de evitar usar las funciones Game_save y Game_load de GM como método de almacenamiento definitivo, ya que son muy limitadas y pueden dar problemas.
La misma documentación te recomienda solo usarlas como buffer para cargar partidas cuando sigues dentro del juego, ya que al salir, muchos datos del juego no se guardan con Game_Save

En mi caso lo que quiero es hacer como Dark Souls, en el cual el juego al salir guarda tu posición actual para que una vez regreses el juego este tal y como lo hayas dejado.
Si la cosa fuera guardar simplemente un record si que usaria otro sistema más eficiente, pero en este caso lo suyo es usar game_save.

Si piensas que los usuarios de tus programas son idiotas, sólo los idiotas usarán tus programas.

-Linus Torvalds ("Padre" de Linux)-