Spanish Algunas dudas

marrison

Member
Hola buenas, estoy haciendo un juego muy simple pero necesito vuestra ayuda porque tengo un par de dudas que no consigo resolver...

La primera de todas y mas importante es como guardar el progreso del juego, me explico, yo estoy haciendo un juego y lo que quiero es guardar el progreso para que aunque se apague el dispositivo si vuelvo a abrirlo siga donde estaba, como podria hacerlo? Habia pensado en almacenar las variables, y luego leer los datos, pero eso no soluciona la posicion del jugador, vosotros como lo haceis?

Y la segunda duda es esta, como podria usar la red? Me explico otra vez, es un juego de disparos, y lo que me gustaria seria poner una funcion multijugador para poder jugar online, pero es que aqui no se ni por donde empezar... xD

Seria muy complicado? Porque entonces lo dejo, pero me gustaria que tuviera esa opcion, online o por bluetooth, me es igual, pero seria jugar contra otra persona... se puede?

Muchas gracias a todos, un saludo
 

Descartex

Well-Known Member
Licensed User
Longtime User
Buenas, marrison!!!

Pues así a bote pronto, se me ocurren un par de opciones, una mas elegante que otra, a saber:
1. Guardas los progresos en una base de datos sqlite y cada vez q abras el juego, cargas el estado (si lo habia)
2. Guardas los progresos en un fichero de texto (esta opcion es muy "sucia") y haces lo mismo.
La segunda opcion es la mas engorrosa, nunca me gustó trabajar con ellos.

en cuanto a lo de usar la red, bajo mi punto de vista, no te queda otra que hacer un servidor que haga de punto de enlace entre un jugador y otro...

Si necesitas ayuda, no dudes en pedirla.

Un saludo.
 

marrison

Member
Y en la base de datos guardaría todas las variables no? La verdad es que nunca he trabajado con bases de datos, tendré que aprender a manejarlas...

Otra duda muy básica que tengo es, durante el juego las variables cambian de valor, lo único es que a la hora de cambiar de activitys no se guarda el valor, aunque la declare en las variables comunes, ahora lo hacia con un fichero de texto, aunque como dices queda muy mal, como podría hacer para coger el valor de una variable en todas las activitys?

Lo de la red me imaginaba lo del servidor, pero de momento lo dejare de lado hasta controlar y tener bien el resto del juego, y luego ya si eso le meteré mano a ver...

Muchas gracias Descartex, Un saludo
 

marrison

Member
Si declaras las variables en Process_Globals, te guardaran el valor y podrás acceder a ellas desde el resto de activitys.

Saludos

Si las pongo ahi pero al modificar los datos no me lo cambian...

Desde un activity modifico los datos (nombres) y luego al querer usarlos en otro activity diferente no me lo lee.

Un saludo
 

Descartex

Well-Known Member
Licensed User
Longtime User
Como bien dice vampirbcn, las variables que van en Process_Globals son accesibles desde todo el programa, es decir, desde cualquier parte de la aplicacion.
En la base de datos simplemente guardas los datos del juego que no quieras perder una vez la aplicacion deje de ejecutarse.

Un saludete!!!
 

marrison

Member
Claro, pero al guardar el contenido de las editbox en la variable definida en Procces_Globals no me guardaba el valor, de todas formas como quiero que se guarde aunque se cierre el programa lo voy a guardar tambien en una base de datos.

De todas formas tengo que mirar lo de procces_globals para que en vez de leer todo el rato la tabla de datos, lo leere al principio y lo almacenare en la variable.

Que me recomendais para lo de la base de datos? Como la hago? Es que nunca he hecho una... xD
 

vampirbcn

Active Member
Licensed User
Longtime User
marrison aquí te dejo un ejemplo

En el activity Main declaro una variable llamada lavariable
B4X:
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Public lavariable as string
End Sub

Sub Activity_Create(FirstTime AsBoolean)
   'Do not forget to load the layout file created with the visual designer. For  
   Main.lavariable="un valor"  ' le asigno un valor de ejemplo
End Sub

Pongamos en el activity Config leo y modifico el valor de lavariable creada en el activity Main
B4X:
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    msgbox(Main.lavariable,"") ' me muestra el valor actual de lavariable
    Main.lavariable="Test"  ' le asigno otro valor
    msgbox(Main.lavariable,"") ' me muestra el nuevo valor de lavariable
End Sub

saludos
 

marrison

Member
marrison aquí te dejo un ejemplo

En el activity Main declaro una variable llamada lavariable
B4X:
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Public lavariable as string
End Sub

Sub Activity_Create(FirstTime AsBoolean)
   'Do not forget to load the layout file created with the visual designer. For 
   Main.lavariable="un valor"  ' le asigno un valor de ejemplo
End Sub

Pongamos en el activity Config leo y modifico el valor de lavariable creada en el activity Main
B4X:
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    msgbox(Main.lavariable,"") ' me muestra el valor actual de lavariable
    Main.lavariable="Test"  ' le asigno otro valor
    msgbox(Main.lavariable,"") ' me muestra el nuevo valor de lavariable
End Sub

saludos
Ahh vale, el problema es que las declaraba en process global como dim, no como public, puede ser eso?
 

Descartex

Well-Known Member
Licensed User
Longtime User
con Dim te aseguro que funciona...
 

Descartex

Well-Known Member
Licensed User
Longtime User
Pero tienes q hacer referencia al módulo en el que la declaraste, como pone vampirbcn en su ejemplo.

Declara en el main y luego desde cualquier modulo, main.variable sino, evidentemente no chuta
 

quimacama

Member
Licensed User
Longtime User
Claro, pero al guardar el contenido de las editbox en la variable definida en Procces_Globals no me guardaba el valor, de todas formas como quiero que se guarde aunque se cierre el programa lo voy a guardar tambien en una base de datos.

De todas formas tengo que mirar lo de procces_globals para que en vez de leer todo el rato la tabla de datos, lo leere al principio y lo almacenare en la variable.

Que me recomendais para lo de la base de datos? Como la hago? Es que nunca he hecho una... xD
Hola, para guardar el progreso del juego y volverlo a cargar existe un módulo creado por Erel, el StateManager. Es muy fácil de usar y simplifica mucho la tarea de guarda/carga el valor de los objetos.
 

Espinosa4

Active Member
Licensed User
Longtime User
Hola a todos,
Hay alguna diferencia en declarar la variable global con Public o Dim?

Ya se que suena un poco a chino pero tengo unas variables globales que al girar el móvil o cuando pasa de pause a resume y este vuelve a cargar el activity parece que pierden el valor.

Saludos
 

Espinosa4

Active Member
Licensed User
Longtime User
Hola,
Ya he leído (debería haberlo hecho antes) que es lo mismo.

Perdonad las molestias.
Saludos
 
Top