Pregunta

Estoy intentando crear un juego de Android basado en turnos en 2D que presente un tablero similar a una cuadrícula.He pensado en dos métodos diferentes para renderizar el tablero:

  1. una gran costumbre View que calcula todo y renderiza todos los mosaicos.Cualquier animación en cualquier mosaico requerirá que se vuelva a dibujar toda la vista;por lo que esta vista se volverá a dibujar todo el tiempo.

  2. una gran costumbre ViewGroup con muchas costumbres más pequeñas Views, cada uno View representando un solo mosaico.Sólo es necesario volver a dibujar los mosaicos que se animan.El ViewGroup es responsable de asegurarse de que cada View está en la ubicación correcta en la pantalla.

¿Cuál podría ser el método que requiere menos recursos?¿O tal vez hay algún método aún mejor en el que no he pensado?

Otros factores que pueden necesitar ser tenidos en cuenta:

  • Aparte de los mosaicos de la cuadrícula, habrá sprites que se animarán y también se moverán entre los mosaicos.Los mosaicos en sí no se traducen.

  • El número de fichas en el tablero varía de un juego a otro, pero el tablero siempre es rectangular.

  • El tablero suele ser tan grande que en una pantalla típica no caben todas las fichas;por lo que el usuario debería poder desplazarse y hacer zoom en el tablero.

¿Fue útil?

Solución

Opta por una gran costumbre View.

Si lo único que te preocupa es ser menos eficiente en el proceso de dibujo, entonces puedes usar invalidate(Rect) et similar para invalidar solo una pequeña región sucia.Esto volverá a dibujar sólo una pequeña región del View.una gran costumbre View También simplificará las animaciones y otros dibujos que cruzan los bordes de los mosaicos.

Para implementar funciones de zoom y pellizco, eche un vistazo aquí

¿Por qué no un motor de juego como Ymotor?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top