desbloqueo de niveles en la lógica del juego de Android
Tengo una escena de nivel que permiten al usuario seleccionar un nivel.
Pero para pasar al siguiente nivel el usuario debe completar el nivel anterior.
- Java.lang.Object no se puede resolver en Eclipse
- ((Botón)) dentro de un servicio no funciona
- Iniciar sesión con el SDK de Android de Facebook y Proguard
- Error de Android Studio: "La variable de entorno no apunta a una instalación de JVM válida"
- ¿Puedo organizar las clases en carpetas después de hacerlas y seguirán funcionando?
Ahora mismo el primer nivel que se desbloquea automáticamente.
Cuando esté terminado quiero desbloquear el segundo nivel. y cuando se complete el segundo nivel, desbloquear el tercer nivel.
No puedo pensar en cómo iba a hacer esto. Pensé en sharedferferences pero no sé la lógica que debería usar para esto.
podría usar algo de ayuda sobre la lógica detrás de esto.
Cualquiera me puede ayudar?
EDITAR:
En mi escena de juego cuando se completa el juego lo llamo a sharedpreference
editor.putString("level_completed"+level, "unlocked"); editor.commit();
Entonces lo hago..
String levelStatus = preference.getString("level_completed:"+level, "locked"); if(levelStatus.equals("unlocked")){ }else{ if(level == 0){ box.setUserData("unlocked"); }else{ box.setColor(1.0f,0.0f,0.0f); box.setUserData("locked"); } }
en la escena de selección de nivel para comprobar si el nivel está desbloqueado.
Esto no parece estar funcionando bien. Un nivel que debe desbloquearse no está desbloqueado.
- Regex palabra entera
- Widget de la pestaña siempre en los alfabetos de mayúsculas en Android 4.0
- Leer y escribir datos con GSON
- No se puede reproducir este video. Android videoView mp4 grabado por el dispositivo Android
- ¿Cómo puedo obtener la diferencia entre dos fechas en android ?, intentado todo y publicar
- ListView: ¿Cómo permanecer resaltado / seleccionado después de pulsar el botón Atrás?
- ¿De dónde viene Enum.values ()?
- Latch (usado para esperar la respuesta asíncrona) congela el WebView (y la interfaz de usuario)
Hay un número de maneras que podría abordarlo. Si la progresión es siempre lineal (1, 2, 3, 4), puede almacenar un número entero para "nivel máximo desbloqueado" y luego actualizarlo cada vez que complete un nivel. De lo contrario, también podría tener muchos booleanos como "nivel 2 desbloqueado" y cuando complete el nivel 1, puede establecer "nivel 2 desbloqueado" a true. Preferencias compartidas es definitivamente una manera razonable de ir.
Lo que haría es mirarlo en una perspectiva orientada a objetos, que es lo que se trata de Java. Cuando me quedo atascado en un pedazo de código, entonces lo escribo. Piense en cuál es el objetivo del código.
-
Probablemente tengas una clase llamada Nivel. En esta clase de nivel se podría tener una propiedad llamada "desbloqueado" o lo contrario "bloqueado". Entonces, cuando el usuario va a su pantalla de "jugar un nivel" o lo que tiene, entonces sólo permiten al usuario ver los niveles que se desbloquean.
-
También es probable que tenga una clase Player de algún tipo para que pueda tener una propiedad llamada "unlockedLevels" que es del tipo Level []. Entonces, todos los niveles desbloqueados estarían en esta serie de Niveles.
Todo se trata de cómo su código está estructurado, la estructura y la orientación del objeto verdadero son las cosas más importantes en Java. Cuando usted se desvía de diseño orientado a objetos entonces usted puede encontrarse con problemas que nunca deben haber existido.
En algún momento, a menos que su juego se reinicie desde el principio cada vez que el usuario hace algo más por un momento, guarda el estado del juego. Guarda la puntuación del usuario, el estado del juego, etc. Cuando haces esto, sin embargo lo haces, guarda también los niveles desbloqueados. Es sólo un poco de información por nivel, por lo que no es necesario ser inteligente sobre esto. Tal vez usted también tiene un botón de "guardar", guardar los archivos, la capacidad de carga de un ahorro. Una vez más, simplemente lance el nivel del usuario desbloquea cuando estás guardando todo lo demás.
¿O aún no has empezado a salvar nada?
Bueno, empieza por guardar el estado en los paquetes dados a los métodos del ciclo de vida de la actividad, como onPause. Si múltiples salvados son apropiados para su juego, vaya con archivos y decida sobre su estructura. Si sólo una "salvar" va a hacer, las preferencias es probable que funcione muy bien para usted. Una prueba para eso: si alguna vez quieres calcular la clave de una preferencia, no uses preferencias.
- Cómo acceder a archivos de vídeo de la carpeta de tarjetas SD en la aplicación de Android
- Buscar una ubicación en google maps sin dar sus geo-coordenadas