2011-07-28 10 views
7

Quiero hacer una pantalla de nivel para mi juego similar a las de Angry Birds, Farm Tower y Cut the Rope (la parte donde se seleccionan los mundos, o la parte similar al widget de la galería). Quería saber cuál es la forma más fácil de atacar esto.Pantalla selectora de nivel como Farm Tower, Angry Birds, Cut the Rope, etc.

¿Cómo puedo modificar la vista Gallery para que funcione?

+0

¿Tienes algo de suerte haciendo esta vista? por favor comparte. thnx –

+0

No realmente. ¡Sigo buscando una respuesta! –

Respuesta

2

Aquí hay una idea para hacer un selector de nivel usando la vista Gallery.

Vamos a seguir este ejemplo simplemente para que tenga una base de código: http://developer.android.com/resources/tutorials/views/hello-gallery.html

Así que en la parte superior que tendrá su pantallas de nivel. Cuando un usuario hace clic en él, este método se activa (tomado directamente del ejemplo).

gallery.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView parent, View v, int position, long id) { 
     startLevel(position); 
    } 
}); 

Tal vez su startLevel se verá algo como esto:

public void startLevel(int position){ 
    Resources res = getResources(); 
    String[] levels = res.getStringArray(R.array.level_classes); 
    try{   
     Intent i = new Intent(this, Class.forName(levels[position])); 
     startActivity(i); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
} 

Una vez más, un ejemplo muy básico ya que no tengo idea de cómo se está almacenando sus niveles, si está utilizando una base de datos o no , etc. Además, sus clases para cada nivel probablemente residirán en paquetes diferentes (por ejemplo, com.game.levelone, com.game.leveltwo) y tendrá que importar los paquetes de clase para no obtener un ClassNotFoundException. Pero esto debería ayudarte a comenzar en la dirección correcta.

4

Vistas desde a hierarchy. Haga un Gallery de GridView 's.

Si desea adaptar el código de la Galería de tutorial, cambiar el ImageView a LevelSetView, y crear un LevelSetAdapter que se extiende BaseAdapter, y anular su método getView. Aquí hay un comienzo.

public class HelloLevelsGalleryActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Gallery g = (Gallery) findViewById(R.id.gallery); 
     g.setAdapter(new LevelSetAdapter(this)); 
    } 

para comprender mejor los adaptadores: reference o esta video a los 2 minutos.

Además, la pregunta fue here.

Cuestiones relacionadas