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
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Ist das was neues?Kampf gegen Windmühlen...
Ich habe mich nun entschieden, mit C++ und SFML weiterzumachen.
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].
Es ist aber nun mal so, dass du damit eigentlich an einem Framework / Engine arbeitest bzw. programmierst, und nur ein Teil tatsächliche Spielelogik darstellt, nämlich ziemlich genau DER Teil, den du z.B. in Unity über Scripts löst, welche Sprache ist dabei vollkommen egal.Als ich dann beschlossen habe Spiele zu programmieren wollte (und will jetzt auch immer noch) Spiele PROGRAMMIEREN und sie nicht in einem Editor zusammenklicken
Na ja, ich mache mir schon Konzepte. Vielleicht sind sie nicht so ausführlich wie sie sein sollten, aber ich stehe ja noch am Anfang und habe viel zu lernen. Ich zeichne mir einen Screenshot aus dem fertigen Wunschspiel, wie er in etwa aussehen soll, mit den wichtigsten Elementen wie Karte, Spielerfigur und Monster. Ich überlege mir dann, welche Eigenschaften diese Objekte alles haben müssen, was berechnet werden muss, was ich in den Header schreibe etc. Eine Spielerfigur hat zum Beispiel einen Angriffs-und Verteidigungswert, ein Level das diese Basiswerte erhöht, und Erfahrungspunkte die das Level erhöhen. Ein Monster hat Basiswerte und droppt Erfahrungspunkte. Dann brauche ich noch einen Algorithmus, der die Kämpfe berechnet, einen für die Bewegung über die Weltkarte, einen der das zufällige Treffen des Spielers auf Monster bestimmt etc. Gerade kämpfe ich mit den Klassen in C++ und wie ich alles am besten anordne. Der nächste Schritt wäre dann wohl ein Ablaufdiagramm.Man sieht das auch immer schön daran, dass die meisten Leute drauf los coden ohne mal irgendwelche Skizzen oder Konzepte erstellt zu haben, weil Sie im Grunde viel mehr an der Technik interessiert sind.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »shelley« (03.07.2014, 14:28)
Finde ich gutNa ja, ich mache mir schon Konzepte.Man sieht das auch immer schön daran, dass die meisten Leute drauf los coden ohne mal irgendwelche Skizzen oder Konzepte erstellt zu haben, weil Sie im Grunde viel mehr an der Technik interessiert sind.
Quellcode |
|
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 |
/* Simple turn-based battle algorithm: player vs. monster Written in C++ by Shelley, 07/07/2014, first lesson while learning C++ Feel free to use this source for whatever you want. Contains basic C++: # Simple input/output via iostream.h # loops (if, else if, while) # simple conditions # simple math # variable declarations For more fun: # add random attack values # more monsters # add weapons, armor etc. # even more monsters! */ #include <iostream> using namespace std; int main() { // First, some basic stats for player and monster. May become float in the future for more complex stat calculation. int health_player = 20; int health_monster = 25; // These values are constant for further programming, adding weapon bonus, etc. const int attack_player = 6; const int attack_monster = 5; // Now, the battle loop. while (health_monster > 0 && health_player > 0) { //First, display stats. cout << "Health Player: " << health_player << " \t Attack Strength: " << attack_player << endl; cout << "Health Monster: " << health_monster << " \t Attack Strength: " << attack_monster << endl; // Implement a routine for turn-based fight. char fight; cout << "Fight (y)?"; cin >> fight; cout << "" << endl; if (fight == 'y') { health_player = health_player - attack_monster; health_monster = health_monster - attack_player; } // Break if monster or player is killed. if (health_monster <= 0) { cout << "You won!" << endl; break; } else if (health_player <= 0) { cout << "You lost!" << endl; break; } // Error Message for wrong input. else if (fight != 'y') { cout << "Invalid key!" << endl; } } return 0; } |
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 |
// {...} #include <iostream> int main() { using namespace std; // First, some basic stats for player and monster. May become float in the future for more complex // stat calculation. int health_player = 20; int health_monster = 25; // These values are constant for further programming, adding weapon bonus, etc. const int attack_player = 6; const int attack_monster = 5; // Now, the battle loop. bool fight = true; while (fight) { //First, display stats. cout << "Health Player: " << health_player << " \t Attack Strength: " << attack_player << endl; cout << "Health Monster: " << health_monster << " \t Attack Strength: " << attack_monster << endl; // Implement a routine for turn-based fight. char key; cout << "Fight (y)?"; cin >> key; cout << endl; switch (key) { case 'Y': case 'y': health_player = health_player - attack_monster; health_monster = health_monster - attack_player; break; default: cout << "Invalid key!" << endl; continue; } // Break if monster or player is killed. if (health_monster <= 0) { cout << "You won!" << endl; fight = false; } else if (health_player <= 0) { cout << "You lost!" << endl; fight = false; } } return 0; } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »H5::« (07.07.2014, 08:24)
Werbeanzeige