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 |
float speedY=0;//Geschwindigkeit auf der Y-Achse int Y = 1;//Höhe bool isJump=false const int grav=10;//Gravitation(Die Bewegung nach unten) const int maxY=30;//Maximale Höhe int main() { while(1) { grav(); if(App.GetInput().IsKeyDown(sf::Key::Space)) { speed+=15;//den Wert musst du ausprobieren } } } void grav() { float ElapsedTime = App.GetFrameTime();//Verstrichene Zeit speed-=grav * ElapsedTime;//Runterziehen Y+=speed * ElapsedTime;//Neue Position für Y berechnen if((Y>=0) AND (maxY>Y)) {//Wenn Y nicht unter dem Boden ist und auch nicht über der Decke ist sprites[0].Move(0, Y); //Übertragen } else if(Y>=0) { //Wenn Y die Maximalhöhe überschritten hat Y=maxY; sprites[0].Move(0, Y); //Übertragen speed=0; } else { //Wenn Y unter dem Boden ist Y=0; sprites[0].Move(0, Y); //Übertragen speed=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 |
void CJumper::Jump(void) { float speedY=0;//Geschwindigkeit auf der Y-Achse int blub = 0; //jaja ich weiß solche nahmen sind nicht gerade toll, //sollte aber nur zum test sein. float Y = 1; //Höhe bool isJump=false; const int grav=10; //Gravitation(Die Bewegung nach unten) const int maxY=30; //Maximale Höhe float ElapsedTime = App.GetFrameTime(); //Verstrichene Zeit if(blub == 0) { if(App.GetInput().IsKeyDown(sf::Key::Space)) { speedY = +15;//den Wert musst du ausprobieren } } speedY -=grav * ElapsedTime; //Runterziehen Y =+ speedY * ElapsedTime; //Neue Position für Y berechnen if((Y>=0) && (maxY>Y)) //Wenn Y nicht unter dem Boden ist und auch nicht über der Decke ist { Sprites[0].Move(0, Y); //Übertragen } else if(Y>=0) //Wenn Y die Maximalhöhe überschritten hat { Y=maxY; Sprites[0].Move(0, Y); //Übertragen speedY=0; } else //Wenn Y unter dem Boden ist { Y=0; Sprites[0].Move(0, Y); //Übertragen speedY=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 49 50 51 |
class CJump { private: float speedY=0;//Geschwindigkeit auf der Y-Achse int Y = 1;//Höhe const int grav=10;//Gravitation(Die Bewegung nach unten) const int maxY=100;//Maximale Höhe public: void jump(); void grav(); }; void CJump::jump() { if(App.GetInput().IsKeyDown(sf::Key::Space)) { speed+=15;//den Wert musst du ausprobieren } } void CJump::grav() { float ElapsedTime = App.GetFrameTime();//Verstrichene Zeit Y+=speed * ElapsedTime;//Neue Position für Y berechnen if((Y>=0) && (maxY>Y)) {//Wenn Y nicht unter dem Boden ist und auch nicht über der Decke ist sprites[0].Move(0, Y); //Übertragen } else if((Y>=0) && (maxY<Y)) { //Wenn Y die Maximalhöhe überschritten hat Y=maxY; sprites[0].Move(0, Y); //Übertragen speed=0; } else { //Wenn Y unter dem Boden ist Y=0; sprites[0].Move(0, Y); //Übertragen speed=0; } speed-=grav * ElapsedTime;//Runterziehen } int main() { //GANZ VIEL CODE CJump Jumper; while(1) { Jumper.jump(); Jumper.grav(); } //GANZ VIEL CODE } |
Zitat
CJumper::speedY": Nur statische konstante integrale Datenmember können innerhalb einer Klasse initialisiert werden.
...usw.
C-/C++-Quelltext |
|
1 2 3 4 5 6 |
private: static float speedY=0;//Geschwindigkeit auf der Y-Achse static int Y = 1;//Höhe static const int grav=10;//Gravitation(Die Bewegung nach unten) static const int maxY=100;//Maximale Höhe |
Community-Fossil
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 |
const int gravi=10;//Gravitation(Die Bewegung nach unten) const int maxY=100;//Maximale Höhe class CJump { private: int speedY;//Geschwindigkeit auf der Y-Achse int Y;//Höhe public: void jump(); void grav(); CJump(); }; CJump::CJump() { speedY=0; Y=1; } void CJump::jump() { if(App.GetInput().IsKeyDown(sf::Key::Space)) { speedY+=15;//den Wert musst du ausprobieren } } void CJump::grav() { float ElapsedTime = App.GetFrameTime();//Verstrichene Zeit Y+=speedY * ElapsedTime;//Neue Position für Y berechnen if((Y>=0) && (maxY>Y)) {//Wenn Y nicht unter dem Boden ist und auch nicht über der Decke ist sprites[0].Move(0, Y); //Übertragen } else if((Y>=0) && (maxY<Y)) { //Wenn Y die Maximalhöhe überschritten hat Y=maxY; sprites[0].Move(0, Y); //Übertragen speedY=0; } else { //Wenn Y unter dem Boden ist Y=0; sprites[0].Move(0, Y); //Übertragen speedY=0; } speedY-=gravi * ElapsedTime;//Runterziehen } int main() { //GANZ VIEL CODE CJump Jumper; while(1) { Jumper.jump(); Jumper.grav(); } //GANZ VIEL CODE } |
C-/C++-Quelltext |
|
1 2 3 4 5 |
int blub = 0; if(blub == 0) { Jumper->Jump(); Jumper->grav(); } |
C-/C++-Quelltext |
|
1 |
maxY>Y
|
C-/C++-Quelltext |
|
1 |
maxY>=Y |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 |
if(!isJump) { if(App.GetInput().IsKeyDown(sf::Key::Space)) { speedY+=15;//den Wert musst du ausprobieren isJump=true; } } |
Werbeanzeige