Hallo,
tut mir Leid für die etwas komische Überschrift, aber ich wusste nicht wie ich das schreiben soll.
Hier kurz ein paar Hintergrundinformationen um zu wissen wovon ich gleich rede
Also, ich möchte bald ein Rollenspiel programmieren. Da ich jetzt erstmal in die Programmierung wieder einsteigen muss, halt ich mich momentan in einer Konsolenanwendung auf. Dort geht es momentan soweit, dass es ein "Menü" mit 3 Punkten gibt zwischen denen man wählen kann. Das besteht momentan aus "Neues Spiel starten", "Spiel fortsetzen" und "Spiel beenden".
Dann wird einfach abgefragt was man machen möchte. Wenn man "Neues Spiel starten" wählt, soll man sich eine Figur erstellen. Man gibt der Figur einfach nur einen Namen und wählt eine von 3 Rassen aus.
Außerdem wird die Figur 3 Attribute(Angriff, Verteidigung und Schnelligkeit) haben. Je nach Rasse sollen diese leicht differenzieren. Aber da die Figur am Anfang natürlich Level 1 ist, gibt es feste Startwerte.
Jetzt zu meinem Problem:
Ich sag mal die Startwerte sind wie folgt(ohne Berücksichtigung einer Rasse):
Stärke = 10
Verteidigung = 10
Schnelligkeit = 20
Eine Rasse soll nun 2 Punkte mehr in Stärke aber dafür 1 Punkt weniger Verteidigung haben. Also:
Stärke = 12
Verteidigung = 9
Schnelligkeit = 20
Eine andere soll jetzt aber 2 Punkte mehr in Verteidigung haben und 1 weniger in Stärke.
Ich habe für den Spieler eine Klasse erstellt. In dieser Klasse sind als Membervariablen die 3 Attribute, der Name, die Rasse und die Max. Lebenspunkte enthalten.
Die Werte für die 3 Attribute sollen beim erstellen einer Instanz mit festgelegt werden.
Die Klasse sieht bei mir momentan wie folgt aus:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
class CPlayer
{
private:
//Membervariablen
char m_chName;
char m_chRace;
int m_health;
int m_attack;
int m_defense;
int m_agility;
public:
//Memberfunktionen
CPlayer (char name, char race, int hp, int att, int def, int agi);
void showStatus();
};
|
Ist bestimmt nicht grade sehr schön aber ich lerne ja noch
Jetzt habe ich mir überlegt, dass ich bei der Erstellung des Charakters eine Abfrage für die Rasse mache. Der Konstruktor hat wie man oben sehen kann die Parameter. Die Abfrage wird in einer Variable gespeichert und als Parameter dem Konstruktor übergeben. Im Konstruktor mache ich dann eine If-Abfrage für die Rasse. Also wenn die 1. Rasse gewählt wird, dann diese Werte, sonst bei der anderen Rasse diese Werte usw.
Kann ich das so machen? Und wenn ich das so mache, dann kann ich doch die Parameter für die Attribute aus dem Konstruktor raus nehmen oder nicht?
edit: bzw. müsst ich beim Konstruktor nicht eigentlich sogar nur Namen und Rasse übergeben? Das ist ja das einzige was vom Spieler manuell eingegeben bzw. ausgewählt wird. Also das "int hp" für die Lebenspunkte auch raus, da die ja bei jeder Instanz am Anfang gleich sind. Also dass ich die dann einfach im Konstruktor so festlege mit "m_health = 100"?
Gruß
Tino