Actualmente estoy creando un tirador de arriba hacia abajo como Touhou. El factor más importante del juego es que hay muchos patrones y formas diversas de generar y disparar balas al jugador, vea este video: http://www.youtube.com/watch?v=4Nb5Ohbt1Sg#start=0 : 60; final = 9: 53 ;
En este momento, estoy usando un "Patrón" de clase que tiene una serie de pasos para moverse y disparar. Sin embargo, creo que este método es bastante laborioso, ya que tengo que crear un nuevo Patrón para cada ataque y quizás nuevas clases Bullet que implementarán un cierto comportamiento.
Esta pregunta recibió un comentario que sugiere que debería buscar BulletML para crear y almacenar viñetas fácilmente con un patrón específico. Parece decente, pero me llevó a preguntarme, ¿qué otras soluciones tiene que debería tener en cuenta?
Actualizar
Mi diseño actual es el siguiente:
Un ejemplo de un patrón implementado:
Mi GigasPattern primero ejecuta un teletransporte que mueve a Alice a un cierto punto (X, Y) en la pantalla. Una vez completado esto, el patrón comienza a usar el Mover para mover el sprite (mientras que el teletransporte tiene efectos y animación separados). Estos no son motivo de preocupación, realmente, ya que son bastante simples.
El tirador también crea varios ataques, que son clases nuevamente que el tirador puede usar para crear varios patrones de balas, como el de la pregunta que publiqué. Una vez que el Mover ha llegado a su destino, tanto él como el tirador se detienen y regresan a un estado inactivo. El patrón se completa, es eliminado por la IA y se elige uno nuevo.
Tal vez podrías implementar un lenguaje de script pequeño y propio para tu juego. Entonces podrá guiar los comportamientos de viñetas simplemente agregando nuevos guiones. La ventaja de un lenguaje de script propio es que puedes usarlo en otras partes de tu juego. O podría intentar usar Lua (no sé qué idioma / marco está utilizando). Pero en mi opinión, Lua sería una exageración si solo quieres tener patrones de movimiento.
Entre: Ya hice esto para un tirador espacial, pero por el comportamiento del enemigo. Funcionó bien, así que realmente podrías intentarlo.
fuente
Estaba en la misma situación hace un tiempo y comencé a implementar mi propia arquitectura para los patrones de viñetas. Sin embargo, me di por vencido porque me encontré con una implementación de BulletML para C # / XNA: BulletML C #
Tuve que hacer algunos cambios, pero ahora crear patrones que se vean espectaculares son realmente fáciles. Hay una gran demostración aquí que muestra cómo, unas pocas líneas de XML, puede crear patrones impresionantes.
Si está trabajando en C #, le recomiendo evitar reinventar la rueda. Especialmente si quieres tener patrones muy complejos. Puede tomar algún tiempo comprender BulletML, pero, en mi opinión, vale la pena su tiempo.
Sin embargo, si decide no usar BulletML, entonces, al menos, eche un vistazo al código C # y obtenga una idea de su arquitectura. Puede darte algunas ideas.
fuente