Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
class C_Objekt { //Membervariablen protected: //Momentane Position short X_Pos; short Y_Pos; //Zielposition short X_Target; short Y_Target; //Ordnungs Nummer short ID; bool Team; //Memberfunktionen public: //Statische Zählvariable static short counter; //Etappenziel errechnen und erreichen void F_SetEtap (short &XWayp,short &YWayp); //Ziel setzen void F_SetTarget (short X_NewTarget,short Y_NewTarget); //Objekt positionieren void F_SetPos (short X_NewPos,short Y_NewPos); //Objektposition Anzeigen void F_ShowPos (short &X_ShowPos,short &Y_ShowPos); //Konstruktor C_Objekt (); }; |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
void C_Objekt::F_SetEtap ( short &X_Wayp , short &Y_Wayp ) { if(X_Target != X_Pos || Y_Target != Y_Pos) { //Soll man schräg gehen? if (((X_Target - X_Pos)^2) != ((Y_Target - Y_Pos)^2)) { //Nein!! //Dann doch eher geradeaus //In der Y_Achse Bewegen? if(((X_Target-X_Pos)^2) < ((Y_Target-Y_Pos)^2)) { //Ja! Nach oben oder unten? if(Y_Pos < Y_Target) { //nach oben Y_Pos++; } else { //nach unten Y_Pos--; } } else { //Doch eher in der X_Achse //Nach links oder rechts if(X_Pos < X_Target) { //nach rechts X_Pos++; } else { //nach links X_Pos--; } } } else if (((X_Target - X_Pos)^2) == ((Y_Target - Y_Pos)^2)) { //Wenn man doch schräg //geht, wo liegt dann das Ziel? // Ist es über der momentanen Position? if (X_Pos < X_Target) { //JA!es ist oben //Ist es rechts von der momentanen Position? if (Y_Pos < Y_Target) { //Ja also nach rechts oben X_Pos++; Y_Pos++; } else { //Nein also nach links oben X_Pos++; Y_Pos--; } } else { //NEIN!es ist unten //Ist es rechts von der momentanen Position? if (Y_Pos < Y_Target) { //Ja also nach rechts unten X_Pos--; Y_Pos++; } else { //Nein also nach links unten X_Pos--; Y_Pos--; } } } //neue Koordinaten definieren X_Wayp = X_Pos; Y_Wayp = Y_Pos; } }; //neues Ziel setzen void C_Objekt::F_SetTarget (short X_NewTarget,short Y_NewTarget) { X_Target = X_NewTarget; Y_Target = Y_NewTarget; }; //Objekt positionieren void C_Objekt::F_SetPos(short X_NewPos,short Y_NewPos) { X_Pos = X_NewPos; Y_Pos = Y_NewPos; }; //Objektposition anzeigen void C_Objekt::F_ShowPos (short &X_ShowPos,short &Y_ShowPos) { X_ShowPos = X_Pos; Y_ShowPos = Y_Pos; }; //Konstruktor C_Objekt::C_Objekt () { X_Pos = 0; Y_Pos = 0; counter++; ID = counter; }; //Statische Countervariable short C_Objekt::counter; |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class C_Swordman : public C_Objekt { private: int Leben; short Angriff; short Rüstung; public: //Konstruktor C_Swordman (); //Angriffswert Übergeben(Angreifen) short attack (); //Schaden Erleiden(angegriffen werden) int damage (short Schaden); } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
C_Swordman::C_Swordman () { Leben = 150; Angriff = 10; Rüstung = 5; } //Attackieren short C_Swordman::attack() { return Angriff; }; //Einstecken int C_Swordman::damage(short Schaden) { Leben -= Angriff - Rüstung; }; |
Trotzdem darf man es ja wohl anmerken.Zitat von »"K-Bal"«
Das mag schon sein, aber das eigentliche Problem wird dadurch wahrscheinlich nicht gelöst.
Alter Hase
Zitat von »"Nexus"«
Trotzdem darf man es ja wohl anmerken.Zitat von »"K-Bal"«
Das mag schon sein, aber das eigentliche Problem wird dadurch wahrscheinlich nicht gelöst.
Werbeanzeige