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
Administrator
Magst du uns deinen neuen Code zeigen? Bin sicher, dass wir dir da auch noch ein paar Tipps geben können.
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 |
// Run // // Aufgabe: Der eigentliche "Herzschlag" des Spiels // void CGame::Run() { // Ein paar TTF Vorbereitungen // // Textbuffer für Umwandlung von sprintf_s char TextBuffer[38]; // Score TTF_Font *Font_Score = TTF_OpenFont("Schriftarten/comic.ttf", 50); SDL_Rect Score_Rect; Score_Rect.h = NULL; Score_Rect.w = NULL; Score_Rect.x = 1630; Score_Rect.y = 20; // Bananas TTF_Font *Font_Bananas = TTF_OpenFont("Schriftarten/comic.ttf", 40); SDL_Rect Bananas_Rect; Bananas_Rect.h = NULL; Bananas_Rect.w = NULL; Bananas_Rect.x = 1300; Bananas_Rect.y = 20; // Die "Herzschlag"-Schleife while (m_bGameRun == true) { // Hauptmenü aufrufen, falls noch aktiv if (m_bMenu == true) { Menu (); } // Menu // Framework updaten und Buffer löschen g_pFramework->Update (); g_pFramework->Clear (); // Events überprüfen ProcessEvents (); // Hintergrundbild rendern m_pSpriteGame->Render (); // Spieler updaten und rendern m_pPlayer->Update (); m_pPlayer->Render (); // Neue Bananas hinzufügen SpawnBananas (); // Kollisionen überprüfen CheckCollisions (); // Bananas rendern RenderBananas (); // Message und Texture SDL_Surface *message = NULL; SDL_Texture *Texture = NULL; // Erreichten Score anzeigen sprintf_s(TextBuffer, "Score: %i", m_Score); message = TTF_RenderText_Blended(Font_Score, TextBuffer, { 0, 0, 0, 0 }); Texture = SDL_CreateTextureFromSurface(g_pFramework->GetRenderer(), message); SDL_QueryTexture(Texture, nullptr, nullptr, &Score_Rect.w, &Score_Rect.h); SDL_RenderCopy(g_pFramework->GetRenderer(), Texture, NULL, &Score_Rect); // Texture und Surface löschen SDL_DestroyTexture(Texture); SDL_FreeSurface(message); // Erreichte Bananas anzeigen sprintf_s(TextBuffer, "Bananas: %i", m_Bananas); message = TTF_RenderText_Blended(Font_Bananas, TextBuffer, { 0, 0, 0, 0 }); Texture = SDL_CreateTextureFromSurface(g_pFramework->GetRenderer(), message); SDL_QueryTexture(Texture, nullptr, nullptr, &Bananas_Rect.w, &Bananas_Rect.h); SDL_RenderCopy(g_pFramework->GetRenderer(), Texture, NULL, &Bananas_Rect); // Texture und Surface löschen SDL_DestroyTexture (Texture); SDL_FreeSurface (message); // Falls 'H' gedrückt wird, zum Hauptmenü // zurückkehren und Spielerstand zurücksetzen if (g_pFramework->KeyDown(SDL_SCANCODE_H)) m_bMenu = true; // Spiel darstellen g_pFramework->Render (); } // Fonts schließen TTF_CloseFont(Font_Score); TTF_CloseFont(Font_Bananas); } // Run |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Hannibal_TheHacker« (19.05.2017, 18:19)
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Die Kommentare sind irgendwie ziemlich überflüssig, meinst du nicht? Ich meine sowas wie "// Bananas rendern" direkt über der Zeile "RenderBananas();". Da steht doch in beiden Zeilen dasselbe, aber nur die zweite tut was.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Is nich schön. Versuch dich lieber an's Code Lesen an sich zu gewöhnen. Kommentare vergisst man zusätzlich nämlich gern mal zu aktualisieren, wenn man was ändert, Code hingegen ist immer genau das, was am Ende auch wirklich ausgeführt wird. Die Kommentare in Heikos Buch stellen Erklärungen für den Neuneinsteiger dar, aber viele deiner Kommentare da erfüllen effektiv gar keinen Zweck.
Werbeanzeige