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.

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.

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.

  • Android: ScrollView no se desplaza con el teclado fuera
  • Rotar imagen sin encogerse en Android
  • Obtener la zona horaria actual en la aplicación android
  • Android Studio 2.2.0.12 diseñador automáticamente anuncios "@ + id" prefijo antes de la identificación de la vista y que causa este error inusual
  • Rellenar campos en la vista web de forma automática
  • Administrador de dispositivos virtual deshabilitado en Android Studio
  • Análisis de la matriz JSON con una sub-matriz con GSON?
  • Detección de Android de desinstalación e intención abierta
  • 1000 * 60 * 60 * 24 * 30 resultados en un número negativo
  • ¿Cómo saber qué marcador se ha hecho clic en Google Maps v2 para Android?
  • ¿Cómo clasificar en orden alfabético sin tener en cuenta las mayúsculas y minúsculas?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.