Ir al Indice
Creación de un juego "Paso a Paso"
Load/Save - multiframe
Hemos visto
anteriormente como guardar y recuperar nuestra partida haciendo uso de las "funciones" internas:
Save frame position y
Load frame position:
El método anterior nos sirve muy bien cuando nuestro juego sólo tiene un frame.
Pero al tener varios frames se nos presentan varios problemas que intentaremos abordar aquí.
Vamos en primer lugar a crear un segundo frame y hacer los ajustes correspondientes.
Ajustamos nuestro ejemplo, para tener el escenario en dos frames.
1. Clonamos el primer frame.
2. Hacemos que el contador de balas sea
global, para conservar la numeración al ir de un frame a otro.
3. Para saltar de un frame a otro, pondremos un
active blanco que nos servirá de "pasillo" para realizar el salto por colisión.
4. Creamos esta colisión en los eventos en un nuevo grupo para que se vea todo ordenadito.
5. Eliminamos en los tanques enemigos la animación de
appearing, que nos resulta artificial.
Con esto, nuestro tanque, ya recorre los dos frames y se nos conserva las balas disponibles.
Problema a resolver:Si guardamos la partida en un frame y queremos recuperarla en el otro nos dará un error, por hacer el "load frame position" en un frame distinto al de "save frame position".
Solución: Cambiamos la orden de
Load frame position por
Load application position.
Y esto es lo que tenemos:
Descarga:
tank_08_save_load_multiframe.mfaVemos, como en cierta medida puede usarse este método incluso cuando tenemos varios frames, pero se plantean un problema de difícil solución. Por lo tanto...
¿ Es este un sistema adecuado, en general, para hacer un Load/Save, cuando tenemos múltiples frames ?
No.
Vemos que los cambios realizados con los objetos (en este caso, destrucción de enemigos, uso de los cargadores de balas) no son conservados.
La solución sería hacerlos global, pero esto no resulta práctico, en la mayoría de los casos.
Otra solución sería intentar usar el mismo sistema de "load/save" de forma automática entre frames, pero tampoco es adecuado dado que no nos permite una solución general.
Por lo tanto, en definitiva, si tenemos varios frames, este sistema sólo nos es útil si no nos importa que los frames que abandonamos vuelvan a su estado anterior en caso de que se regrese a ellos.
Si vamos a usar un solo frame, aunque esté dividido en varias celdas, entonces si puede resultar conveniente.
El tema de dividir un frame en celdas se puede ver aquí:
Salto entre celdasTambién lo podemos usar en juegos con varios frames, siempre y cuando estemos pensando en un sistema de Load/Save que sólo funcione en cada frame.
En fin...
Nota: Dado que esta opción no funciona en los distintos exportadores, nos centraremos en otras opciones a partir del siguiente capítulo.