De/Creating A Class System: Difference between revisions
No edit summary |
No edit summary |
||
Line 58: | Line 58: | ||
Jetzt haben wir schonmal die Variablen aber wir setzen noch eine Standatklasse die man beim ersten Spawn bekommen soll. | Jetzt haben wir schonmal die Variablen aber wir setzen noch eine Standatklasse die man beim ersten Spawn bekommen soll. | ||
Zum Schluß brauchen wir noch eine Variable die prüft ob wir das erstemal spawnen. | Zum Schluß brauchen wir noch eine Variable die prüft ob wir das erstemal spawnen. | ||
Da jede Klasse unterschiedliches Leben und Rüstung besitzt müssen wir noch Variablen dafür deklarieren. | Da jede Klasse unterschiedliches Leben und Rüstung besitzt müssen wir noch Variablen dafür deklarieren. | ||
Wir brauchen nur für Rüstung noch Variablen! | Wir brauchen nur für Rüstung noch Variablen! | ||
Diese setzen wir alle private | Diese setzen wir alle private. | ||
Line 96: | Line 74: | ||
Wir nennen sie mal void ChangeClass(int iClass): | Wir nennen sie mal void ChangeClass(int iClass): | ||
Jetzt brauchen wir noch eine Methode die die gültigkeit deer Klasse prüft. | Jetzt brauchen wir noch eine Methode die die gültigkeit deer Klasse prüft. | ||
Line 132: | Line 101: | ||
Dazu nehmen wir int GetHealth(), int GetMaxHealth(), int GetArmor(), int GetMaxArmor(); | Dazu nehmen wir int GetHealth(), int GetMaxHealth(), int GetArmor(), int GetMaxArmor(); | ||
Diese Methoden kommen alle public: | Diese Methoden kommen alle public. | ||
Nun sollte eure Deklaration am ende der Klasse so aussehen: | |||
public: | public: | ||
Line 152: | Line 123: | ||
int m_iDefaultClass; | int m_iDefaultClass; | ||
bool m_bFirstSpawn; | bool m_bFirstSpawn; | ||
Revision as of 03:06, 25 June 2006
Einleitung
Hi und willkommen zum Coding Tutorial um ein Klassensystem zuerstellen. Damit es nicht alzu schwer wird werden wir nur 3 Klassen erstellen. Sollten wir aber eine Klasse wechseln dann werden wir getötet und bekommen beim Spawn unsere Klasse.
Das Klassensystem ist aus meiner Army Mod.
Wir nehmen die Klassen Supporter, Medic und Assaulter
Daten die gebraucht werden
Als erstes eine Auflistung was wir brauchen an Codedateien.
Header:
dlls/player.h
Quellcodedateien
dlls/player.cpp
Das wars auch schon :)
Der Anfang
Als erstes müssen wir uns an die Deklarationen machen. Was wir brauchen sind einige Variablen und einige Funktionen. Aber als erstes werden wir ein Enum erstellen das die Werte unserer Klassen enthält!
Das Enum machen wir erstmal so:
enum { Unassigned=0, Assaulter, Supporter, Medic }
Später brauchen wir das für die Vergleiche!
Jetzt werden wir uns der Klasse CBasePlayer wiedmen.
Als erstes Brauchen wir 2 Variablen. Einmal eine für die Klasse und einmal eine für die Prüfung ob die Klasse später gültig ist.
Dazu machen wir am ende der Klasse einfach einen public und einen private bereich:
public: private:
Jetzt setzen wir die neuen Variablen in den Private bereich
public: private: //Variable die unsere Klasse speichert int m_iClass; //Variable zur Prüfung auf gültige Klasse int m_iCurrentClass;
Jetzt haben wir schonmal die Variablen aber wir setzen noch eine Standatklasse die man beim ersten Spawn bekommen soll.
Zum Schluß brauchen wir noch eine Variable die prüft ob wir das erstemal spawnen.
Da jede Klasse unterschiedliches Leben und Rüstung besitzt müssen wir noch Variablen dafür deklarieren.
Wir brauchen nur für Rüstung noch Variablen! Diese setzen wir alle private.
Okay das wäre alles an Variablen!
Jetzt kommen unsere Methodendeklarationen.
Als erstes brauchen wir eine Methode die unsere Klasse wechselt. Diese setzen wir im public bereich.
Wir nennen sie mal void ChangeClass(int iClass):
Jetzt brauchen wir noch eine Methode die die gültigkeit deer Klasse prüft. Diese nennen wir void CheckClassValue();
Diese kommt auch in den public bereich.
Okay jetzt brauchen wir aber noch eine Methode die Prüft ob wir das erste mal Spawnen. Diese taufen wir auf den Namen bool IsFirstSpawn();
Diese setzen wir auch public.
Jetzt brauchen wir aber noch die Metoden die unsere Klassen verteil und noch Methoden die unsere Klassen setzt!
Zum verteilen nehmen wir mal void SetPlayerClass(); Diese Methode setzen wir public.
Und die Klassensetzen wir per void SetClassAssaulter(); ,void SetClassSupporter(); und void SetClassMedic();. Diese kommen wie unsere Variablen Private!
Jetzt brauchen wir noch eine Methode die uns beim Wechsel der Klasse tötet und uns einen Punkt gibt da wir sonst als Spieler einen Minuspunkt bekommen.
Diese nennen wir void OnClassChange(); und setzen sie public!
Da jede Klasse unterschiedliche Rüstung und Leben hat müssen wir noch Funktionen zum holen des Lebens und der Armor machen! Dazu nehmen wir int GetHealth(), int GetMaxHealth(), int GetArmor(), int GetMaxArmor();
Diese Methoden kommen alle public.
Nun sollte eure Deklaration am ende der Klasse so aussehen:
public: void ChangeClass(int iClass); void CheckClassValue(); bool IsFirstSpawn(); void SetPlayerClass(); void OnClassChange(); int GetHealth(); int GetMaxHealth(); int GetArmor(); int GetMaxArmor(); private: void SetClassAssaulter(); void SetClassSupporter(); void SetClassMedic(); int m_iClass; int m_iCurrentClass; int m_iDefaultClass; bool m_bFirstSpawn;