Pantalla de selección de nivel como Farm Tower, Angry Birds, cortar la cuerda, etc?
Quiero hacer una pantalla de nivel para mi juego similar a los de Angry Birds, Farm Tower y Cut the Rope (la parte donde seleccionas 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.
¿Cómo modificaría la vista Gallery
para trabajar para esto?
- Problemas con Gallery.getChildAt (int position)
- Lista de desplazamiento horizontal de Android
- ¿Cómo puedo actualizar la Galería de Android después de una foto?
- Soft keyboard "del" clave falla en EditText en el widget Galería
- Cómo subir imágenes en la galería del emulador de Android
- Escala la imagen seleccionada en la galería
- Android: excepción de memoria en la Galería
- Solo texto de la galería de Android
- Cómo utilizar el diseño XML como imagen dibujable
- Cómo puedo mostrar imágenes de una carpeta específica en la galería de Android
- ¿Cómo eliminar una imagen en miniatura mediante programación de galera después de eliminar una imagen?
- Abrir una imagen en la Galería incorporada de Android
- Cómo crear una carpeta de imágenes de aplicaciones para mostrarla en la galería de Android
Las vistas forman una jerarquía . Haga una Gallery
de GridView
.
Si desea adaptar el código del tutorial Galería, cambie el ImageView
a LevelSetView
y cree un LevelSetAdapter
que extienda BaseAdapter
y getView
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 entender mejor los adaptadores: referencia o este video a los 2 minutos.
También, la pregunta fue hecha aquí .
He aquí una idea para hacer un selector de nivel usando la vista Gallery
.
Vamos a seguir este ejemplo sólo para que tenga una base de código: http://developer.android.com/resources/tutorials/views/hello-gallery.html
Así que en la parte superior tendrás tus pantallas de nivel. Cuando un usuario hace clic en él, este método se dispara (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 almacenan los niveles, si se está utilizando una base de datos o no, etc Además, las clases de cada nivel probablemente residen en diferentes paquetes, (por ejemplo, com.game. Levelone, com.game.leveltwo) y tendrás que importar los paquetes de clase para no obtener un ClassNotFoundException
Pero esto debería empezar en la dirección correcta.
- Null Pointer Exception on child en onMeasure (): futuresimple / floating-action-button
- Ejemplos de proveedores de contenido que no utilizan SQLite