Méthode de frai ennemi dans un jeu de tir descendant


20

Je travaille sur un tireur de haut en bas semblable à DoDonPachi , Ikaruga , etc. Le mouvement de la caméra à travers le monde est géré automatiquement avec le joueur capable de se déplacer à l'intérieur de la zone visible de la caméra.

En cours de route, les ennemis sont programmés pour apparaître à des points particuliers le long du chemin. Bien que cela semble simple, je pouvais voir deux façons de définir ces points:

  1. Position de la caméra: le déclenchement se produit lorsque la caméra passe par les points
  2. Temps le long du chemin: "30 secondes, engendrent 2 ennemis"

Dans les deux cas, les positions relatives à la caméra seraient définies ainsi que le comportement de l'ennemi.

La façon dont je le vois, la façon dont vous définissez ces points affecteront directement la façon dont «l'éditeur de niveau», ou ce que vous avez, fonctionnera.

Y aurait-il des avantages d'une approche par rapport à l'autre?

Réponses:


7

Je suggérerais de placer les positions d'apparition sur la carte d'arrière-plan en tant que nœuds visibles depuis une sorte d'éditeur de carte. Vous pouvez représenter un spawn shmup avec deux variables:

  1. Position à partir de laquelle ils sont d'abord visibles, ce qui est mieux visualisé comme un point
  2. Distance de l'écran inférieur lorsque vous devez les faire apparaître.

Ensuite, vous pouvez visualiser la distance du bas de l'écran sous la forme d'une ligne verticale pointant vers le bas à partir du nœud d'apparition (qui pourrait être visualisée comme une version grisée de l'ennemi ou quelque chose du genre). Lorsque le bas de l'écran touche cette ligne, il apparaît. Cela vous permet de faire toutes les modifications ennemies complètement dans une sorte d'éditeur visuel et de vous donner un aperçu de l'ensemble du flux du jeu.


Concernant 2) Bien sûr, lors de l'exportation, vous devrez inverser le code (c'est-à-dire par ligne, quels points d'apparition devraient devenir actifs, car avec ce système, vous devez être conscient de certains points d'apparition avant qu'ils ne deviennent visibles. Un détail cependant, c'est en effet la manière la plus logique.
Kaj

1
Notez que vous utilisez un éditeur qui vous permet de déplacer facilement les nœuds en bloc. Lors de la configuration de votre niveau de shmup, vous insérerez et supprimerez des ennemis, et vous ajusterez constamment les horaires au milieu de votre niveau, et devoir déplacer toutes vos entités une à la fois vous tuera.
ZorbaTHut

J'adore cette idée car elle rendra vraiment l'édition beaucoup plus facile, ce qui est toujours un plus
Chris Waters

7

Cependant, la position d'apparition de la caméra serait probablement plus flexible car vous pouvez modifier le chemin sans avoir à vous soucier d'un grand effet domino.

Si vous optez pour des apparitions temporelles, il sera très difficile d'ajouter ou de supprimer un chemin, car vous devrez modifier de nombreuses apparitions ennemies.

Un autre problème que je vois est de peaufiner la vitesse de la caméra. Voulez-vous vraiment aller et modifier les apparitions ennemies juste parce que vous avez fait bouger la caméra un peu plus vite ou plus lentement? De plus, vous devrez jouer à travers le niveau une quantité horrible de fois juste pour trouver des temps d'apparition ou des ajustements pour eux.


2

Je recommande fortement de ne pas déplacer du tout "la caméra"; considérez le joueur et les ennemis dans le même espace de coordonnées fixes à tout moment. Les ennemis et le défilement d'arrière-plan doivent tous deux être associés à une chronologie indépendante. Cela facilite tous les calculs.


Je suis à moitié d'accord avec toi. La physique de shmup est définitivement fausse et basée sur le fait que le navire ne va pas vraiment de l'avant. Cela dit, la question est toujours valable car vous avez un appareil photo, etc. à considérer
Iain

En effet, cela n'invalide pas la question. Il est encore temps par rapport à la distance (virtuelle) parcourue. Que vous déplaciez le lecteur vers l'avant ou l'arrière-plan soit simplement une couche conceptuelle. De plus, les découpler pour faciliter les calculs peut rendre beaucoup plus difficile d'autres choses, comme mettre des ennemis en arrière-plan (tourelles), leur faire éviter les objets d'arrière-plan ou avoir des collidables en arrière-plan.
Kaj

1

J'irais pour la position de la caméra. Utiliser le temps rendra la tâche assez difficile si vous voulez qu'un chemin ennemi corresponde à certains graphiques de votre fichier de carte (comme les ennemis qui suivent un chemin courbe). Il vous permet également d'accélérer le défilement sans modifier les points d'apparition.
Le revers de la médaille est que l'accélération du défilement accélérera les ennemis. Ce qui pourrait être considéré comme un plus (l'accélération serait difficile) ou un négatif (la vitesse de défilement influence la stimulation).


1

Je travaille également sur un jeu de tir spatial. Ce que j'ai fait, c'est que j'ai utilisé un objet de jeu vide appelé GameController. ajouté un composant de script appelé GameController.cs qui contrôle la partie de génération comme,

  • Stocker une liste de points d'apparition [tableau]
  • Donnez à chaque ennemi un poids et des points spécifiques. le poids contrôlant le taux de frai ennemi si un ennemi a un poids élevé a une bonne possibilité de choisir dans chaque niveau.
  • Ensuite, à chaque fois, vérifiez le niveau actuel et choisissez un nombre aléatoire, si le nombre est inférieur au poids, générez cet ennemi associé. J'espère que cela a aidé.

http://www.youtube.com/watch?v=VqFJsU63GRo


0

Je les placerais sur le grand fond de carte et inclurais leur trajectoire initiale sur cette carte. De cette façon, je pourrais changer le chemin de la caméra plus tard de manière significative au lieu de devoir changer à la fois le chemin et le timing séparément.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.