Jestem w fazie planowania małej gry RPG.
Postać będzie miała zestaw atrybutów, takich jak siła, zwinność itp., Które są reprezentowane jako liczby całkowite. Postać będzie miała również zestaw ataków reprezentowanych jako klasa ataku.
Przy każdym ataku chcę, aby zadawał obrażenia na podstawie atrybutów postaci, np .: atak „cięcie mieczem” spowoduje 10 dmg + wartość siły postaci.
Myślałem o tym, aby mieć abstrakcyjną klasę ataku, która ma abstrakcyjną metodę ataku, i dla każdego ataku tworzę jedną klasę, która implementuje metodę ataku.
public class SwordSlash:Attack
{
public void Attack(Character attacker, Character defender)
{
defender.DoDamage(10 + attacker.Strength);
}
}
Widzę, że będzie to koszmar do utrzymania.
Czy ktoś ma pomysł, w jaki sposób mogę to osiągnąć w lepszy sposób?
Myślę, że głównym problemem jest to, jak wprowadzić poprawny atrybut na podstawie ataku.
źródło
Chcesz czytać obiekty kruszywa za pomocą komponentów i budowli gry Game Rabbit Hole , z bloga Replika wyspy .
źródło
Miałbym klasę broni, która ma metodę ataku, którą zastępujesz pożądanym zachowaniem. Następnie możesz poradzić sobie z tym, jak broń wygląda w grze, w ekwipunku, ile sprzedaje za itp. W tej samej klasie.
źródło
Jestem naprawdę nowy, ale sposób, w jaki to zrobię, to stworzenie ogólnej klasy ataku.
Gdy jedna instancja postaci chce zaatakować inną instancję postaci, utworzy instancję klasy ataku, wypełnioną wymaganymi danymi i identyfikatorem postaci, która ją utworzyła. Korekty ze sprzętu zostaną następnie zastosowane do obiektu ataku, przy użyciu danych, które można wprowadzić w dokumencie XML lub podobnym.
Ta instancja klasy zostałaby następnie zapakowana w inną klasę, aby zapewnić haczyki dla środowiska w celu ustalenia zasięgu lub podobnego. Jeśli atak jest prawidłowy, instancja ataku zostanie przekazana atakowanej postaci, która zastosuje efekty.
Mam nadzieję, że to miało sens.
źródło