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 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 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 |
#include "game.hpp" void CGame::Run(CFramework *Background) { bGameRun = true; CPlayer Player; CClock FPS; bool map=false; int XposPL=0; int YposPL=0; int sprint=200; float RP=100; float XposBG=0; float YposBG=0; sf::Clock clock; sf::Time elapsed; while(bGameRun==true) { Background->Clear(); std::cout<<FPS.Clock()<<std::endl; elapsed=clock.getElapsedTime();//Verstrichene Zeit seit dem letzten Frame clock.restart(); Background->Run("Data/Textures/background.png",XposBG, YposBG);//Hintergrund; 7 FPS (Debug) Player.Char(Background,XposPL,YposPL);//Player Player.HP(Background);//Healthpoints Player.RP(Background,RP);//Runpoints Player.HPR(Background);//Rahmen vom HP und RP if(map==true) { Player.Map(Background);//Übersichtskarte } Background->Display(); while(Background->Window->pollEvent(event)) { if(event.type == event.KeyPressed) { if(event.key.code == sf::Keyboard::Escape || event.Closed==true) { bGameRun=false; CMenu Menu; Menu.Menu(Background); } } } //Steuerung if(sf::Keyboard::isKeyPressed(sf::Keyboard::M))//Map aufrufen { if(map==false) { map=true; } else { map=false; } } if(!sf::Keyboard::isKeyPressed(sf::Keyboard::LShift))//Sprinten aufladen { RP+=2*elapsed.asSeconds(); sprint=200; } if(sf::Keyboard::isKeyPressed(sf::Keyboard::LShift))//Sprinten { if(sf::Keyboard::isKeyPressed(sf::Keyboard::D)) { RP-=5*elapsed.asSeconds(); XposPL=0; YposPL=64; XposBG+=sprint*elapsed.asSeconds(); if (XposBG>=1200) XposBG=1200; } if(sf::Keyboard::isKeyPressed(sf::Keyboard::A)) { RP-=5*elapsed.asSeconds(); XposPL=64; YposPL=64; XposBG-=sprint*elapsed.asSeconds(); if (XposBG<=-700) XposBG=-700; } if(sf::Keyboard::isKeyPressed(sf::Keyboard::W)) { RP-=5*elapsed.asSeconds(); XposPL=64; YposPL=0; YposBG-=sprint*elapsed.asSeconds(); if (YposBG<=-350) YposBG=-350; } if(sf::Keyboard::isKeyPressed(sf::Keyboard::S)) { RP-=5*elapsed.asSeconds(); XposPL=0; YposPL=0; YposBG+=sprint*elapsed.asSeconds(); if (YposBG>=625) YposBG=625; } } else if(sf::Keyboard::isKeyPressed(sf::Keyboard::LControl))//Schleichen { if(sf::Keyboard::isKeyPressed(sf::Keyboard::D)) { XposPL=0; YposPL=64; XposBG+=50*elapsed.asSeconds(); if (XposBG>=1200) XposBG=1200; } if(sf::Keyboard::isKeyPressed(sf::Keyboard::A)) { XposPL=64; YposPL=64; XposBG-=50*elapsed.asSeconds(); if (XposBG<=-700) XposBG=-700; } if(sf::Keyboard::isKeyPressed(sf::Keyboard::W)) { XposPL=64; YposPL=0; YposBG-=50*elapsed.asSeconds(); if (YposBG<=-350) YposBG=-350; } if(sf::Keyboard::isKeyPressed(sf::Keyboard::S)) { XposPL=0; YposPL=0; YposBG+=50*elapsed.asSeconds(); if (YposBG>=625) YposBG=625; } } else//normales gehen { if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))//Normal { XposPL=0; YposPL=64; XposBG+=100*elapsed.asSeconds(); if (XposBG>=1200) XposBG=1200; } if(sf::Keyboard::isKeyPressed(sf::Keyboard::A)) { XposPL=64; YposPL=64; XposBG-=100*elapsed.asSeconds(); if (XposBG<=-700) XposBG=-700; } if(sf::Keyboard::isKeyPressed(sf::Keyboard::W)) { XposPL=64; YposPL=0; YposBG-=100*elapsed.asSeconds(); if (YposBG<=-350) YposBG=-350; } if(sf::Keyboard::isKeyPressed(sf::Keyboard::S)) { XposPL=0; YposPL=0; YposBG+=100*elapsed.asSeconds(); if (YposBG>=625) YposBG=625; } } if (RP<=0) { RP=0; sprint=100; } else if (RP >=100) RP=100; } } |
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 |
#include "framework.hpp" CFramework::CFramework(int WinWidth, int WinHeight) { Window = new sf::RenderWindow(sf::VideoMode(WinWidth,WinHeight,32),"Das Spiel",sf::Style::Default); std::cout << "Konstruktor wurde aufgerufen\n"; } void CFramework::Run(std::string Filename,float XposBG, float YposBG) { sf::Texture TextureBG; TextureBG.loadFromFile(Filename); std::cout << "Textur von " << Filename << " aufgerufen \n"; sf::Sprite SpriteBG; SpriteBG.setTexture(TextureBG); SpriteBG.setPosition(0,0); SpriteBG.setTextureRect(sf::IntRect(XposBG,YposBG,1600,900)); SpriteBG.scale(1.0,1.0); std::cout << "Textur formatiert\n"; CFramework::Draw(SpriteBG); } void CFramework::Clear() { Window->clear(sf::Color(0,0,0)); std::cout << "Fenster gelöscht\n"; } void CFramework::Draw(sf::Sprite Sprite) { Window->draw(Sprite); std::cout << "Fenster gezeichnet\n"; } void CFramework::Display() { Window->display(); std::cout << "Fenster angezeigt\n"; } |
Super, jetzt funkioniert es Hätte ich auch selber drauf kommen können -.- Naja manchmal hat man halt ein Brett vorm Kopf
Du lädst die Grafiken, die du benötigst im Konstruktor in eine Membervariable. Vor dem Zeichnen kannst du ja daraus ein Sprite erstellen und zeichnen.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
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 |
#include "framework.hpp" CFramework::CFramework(int WinWidth, int WinHeight) { Window = new sf::RenderWindow(sf::VideoMode(WinWidth,WinHeight,32),"Das Spiel",sf::Style::Default); std::cout << "Konstruktor wurde aufgerufen\n"; TextureMenuBG = new sf::Texture ; TextureMenuBG->loadFromFile("Data/Textures/menue.png"); std::cout << "Textur von " << "Data/Textures/menue.png" << " aufgerufen \n"; TextureGameBG = new sf::Texture ; TextureGameBG->loadFromFile("Data/Textures/background.png"); std::cout << "Textur von " << "Data/Textures/background.png" << " aufgerufen \n"; } void CFramework::RunMenu() { sf::Sprite SpriteBG; SpriteBG.setTexture(*TextureMenuBG); SpriteBG.setPosition(0,0); SpriteBG.setTextureRect(sf::IntRect(0,0,1600,900)); SpriteBG.scale(1.0,1.0); std::cout << "Textur formatiert\n"; CFramework::Draw(SpriteBG); } void CFramework::RunGame(float XposBG, float YposBG) { sf::Sprite SpriteBG; SpriteBG.setTexture(*TextureGameBG); SpriteBG.setPosition(0,0); SpriteBG.setTextureRect(sf::IntRect(XposBG,YposBG,1600,900)); SpriteBG.scale(1.0,1.0); std::cout << "Textur formatiert\n"; CFramework::Draw(SpriteBG); } |
Werbeanzeige