Je suis en train de créer un jeu de tir top-down comme Touhou. Le facteur le plus important du jeu est qu'il existe de nombreux modèles et façons de générer et de tirer des balles sur le joueur, voir cette vidéo: http://www.youtube.com/watch?v=4Nb5Ohbt1Sg#start=0 : 60; fin = 9: 53 ;
En ce moment, j'utilise une classe "Pattern" qui a une série d'étapes sur le déplacement et la prise de vue. Cependant, je pense que cette méthode est assez laborieuse car je dois créer un nouveau modèle pour chaque attaque et peut-être de nouvelles classes Bullet qui implémenteront un certain comportement.
Cette question a reçu un commentaire suggérant que je devrais examiner BulletML pour créer et stocker facilement des puces avec un modèle spécifique. Cela a l'air décent, mais cela m'a amené à me demander quelles autres solutions avez-vous que je devrais prendre en considération?
Mise à jour
Ma conception actuelle est la suivante:
Un exemple de modèle implémenté:
Mon GigasPattern exécute d'abord une téléportation qui déplace Alice jusqu'à un certain point (X, Y) sur l'écran. Après cela, le motif commence à utiliser le Mover pour déplacer le sprite (alors que la téléportation a des effets et une animation distincts). Ceux-ci ne sont pas vraiment préoccupants, car ils sont assez simples.
Le tireur crée également diverses attaques, qui sont à nouveau des classes que le tireur peut utiliser pour créer divers modèles de balles, un peu comme celui de la question que j'ai publiée. Une fois que le déménageur a atteint sa destination, lui et le tireur s'arrêtent et reviennent à un état inactif. Le modèle est terminé, est supprimé par l'IA et un nouveau est choisi.
Peut-être pourriez-vous implémenter un propre petit langage de script pour votre jeu. Ensuite, vous seriez en mesure de scripter les comportements des puces en ajoutant simplement de nouveaux scripts. L'avantage d'un propre langage de script est que vous pouvez l'utiliser sur d'autres parties de votre jeu. Ou vous pouvez essayer d'utiliser Lua (je ne sais pas quel langage / framework vous utilisez). Mais à mon avis, Lua serait une exagération si vous voulez juste avoir des modèles movin.
Entre: J'ai déjà fait ça pour un tireur spatial, mais pour le comportement ennemi. Cela a bien fonctionné, vous pouvez donc vraiment essayer.
la source
J'étais exactement dans la même situation il y a quelque temps et j'ai commencé à implémenter ma propre architecture pour les modèles de puces. J'ai toutefois abandonné, car je suis tombé sur une implémentation de BulletML pour C # / XNA: BulletML C #
J'ai dû faire quelques changements, mais maintenant, créer des motifs qui ont l'air spectaculaires est vraiment très facile. Il y a une grande démo ici qui vous montre comment, quelques lignes de XML, peuvent créer des modèles impressionnants.
Si vous travaillez sur C #, je vous recommande fortement d'éviter de réinventer la roue. Surtout si vous voulez avoir des motifs très complexes. Cela peut prendre un certain temps pour envelopper votre tête autour de BulletML, mais, à mon avis, cela vaut bien votre temps.
Cependant, si vous décidez de ne pas utiliser BulletML, alors, à tout le moins, jetez un œil au code C # et ayez une idée de son architecture. Cela pourrait vous donner quelques idées.
la source