Je suis dans la phase de planification d'un petit jeu de style RPG.
Le personnage aura un ensemble d'attributs, tels que la force, l'agilité, etc. qui sont représentés sous forme d'entiers. Le personnage aura également un ensemble d'attaques représentées en tant que classe d'attaque.
À chaque attaque, je veux que les dégâts soient basés sur les attributs des personnages, par exemple: l'attaque "slash slash" fera 10 dmg + la valeur de la force des personnages.
Pour ce faire, je pensais avoir une classe d'attaque abstraite, dotée d'une méthode d'attaque abstraite, et pour chaque attaque, je crée une classe qui implémente la méthode Attack.
public class SwordSlash:Attack
{
public void Attack(Character attacker, Character defender)
{
defender.DoDamage(10 + attacker.Strength);
}
}
Je vois que cela en fera un cauchemar à entretenir.
Quelqu'un a-t-il une idée de la façon dont je peux accomplir cela plus agréablement?
Je pense que le problème principal est de savoir comment entrer le bon attribut, en fonction de l'attaque.
la source
Vous souhaitez lire les objets d'agrégation via les composants et la construction d'objet de jeu Rabbit Hole , à partir du blog Replica Island .
la source
J'aurais une classe d'arme qui a une méthode d'attaque que vous substituez au comportement que vous souhaitez. Vous pouvez également gérer l'apparence de l'arme dans le jeu, l'inventaire, le prix des ventes, etc. dans la même classe.
la source
Je suis vraiment nouveau dans ce domaine, mais je le ferais en créant une classe d'attaque générique.
Lorsqu'une instance de personnage veut attaquer une autre instance de personnage, elle crée une instance de la classe d'attaque, contenant les données requises et l'ID du personnage qui l'a créée. Les ajustements apportés par l'engrenage seraient ensuite appliqués à l'objet d'attaque, à l'aide de données pouvant être entrées dans un document XML ou similaire.
Cette instance de classe serait ensuite encapsulée dans une autre classe, afin de fournir des points d'ancrage à l'environnement afin de déterminer la plage ou similaire. Si l'attaque est valide, l'instance d'attaque serait transmise au personnage attaqué, qui appliquerait les effets.
J'espère que cela avait du sens.
la source