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
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 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 |
// ########################################### // Name: TakeIt // Spieler: 1-2 Spieler // Info: Fange den Ball um Punkte zu bekommen. // ########################################### #include <SFML\Graphics.hpp> #include <iostream> int main () { sf::RenderWindow App(sf::VideoMode (800, 600, 32), "Takeit V1"); // Strukturen struct S_Spieler { float X; float Y; int Sitz; int Punkte; int Leben; }; struct S_Ball { float X; float Y; bool life; }; // Variablen int Spieler_Anzahl = 1; S_Spieler Spieler1; S_Spieler Spieler2; S_Ball Ball1; const float Speed = 0.3f; bool Spawn = true; // Random Seed initialisieren srand (time (NULL)); // Spieler1 initialisieren Spieler1.Leben = 3; Spieler1.Punkte = 0; Spieler1.Sitz = 1; // 1.Sitz oben - 2.Sitz unten Spieler1.X = 350.f; Spieler1.Y = 500.f; // Spieler2 initialisieren Spieler2.Leben = 3; Spieler2.Punkte = 0; Spieler2.Sitz = 2; // 1.Sitz oben - 2.Sitz unten Spieler2.X = 350.f; Spieler2.Y = 550.f; // Game Loop while (App.IsOpened ()) { // Event sf::Event Event; while (App.GetEvent (Event)) { // Schließen Button if (Event.Type == sf::Event::Closed) { App.Close (); return EXIT_SUCCESS; } } // Ball1 initialisieren if (Spawn == true) { Ball1.X = ((rand()+10)%750); Ball1.Y = ((rand()-50)%10); Ball1.life = true; Spawn = false; } // Steuerung Spieler1 if (Spieler1.X >= 5) { if (App.GetInput().IsKeyDown(sf::Key::Left)) Spieler1.X -= Speed; } if (Spieler1.X <= 745) { if (App.GetInput().IsKeyDown(sf::Key::Right)) Spieler1.X += Speed; } // Spieler1 Zeichnen if (Spieler1.Sitz == 1) { Spieler1.Y = 500; App.Draw(sf::Shape::Line (Spieler1.X, Spieler1.Y, Spieler1.X+50, Spieler1.Y, 5, sf::Color::Red)); } else { Spieler1.Y = 550; App.Draw(sf::Shape::Line (Spieler1.X, Spieler1.Y, Spieler1.X+50, Spieler1.Y, 5, sf::Color::Red)); } // Spieler2 Zeichnen if (Spieler_Anzahl == 2) { if (Spieler2.Sitz == 1) { Spieler2.Y = 500; App.Draw(sf::Shape::Line (Spieler2.X, Spieler2.Y, Spieler2.X+50, Spieler2.Y, 5, sf::Color::Blue)); } else { Spieler2.Y = 550; App.Draw(sf::Shape::Line (Spieler2.X, Spieler2.Y, Spieler2.X+50, Spieler2.Y, 5, sf::Color::Blue)); } } // Ball Zeichnen if (Ball1.life == true) { App.Draw(sf::Shape::Circle (Ball1.X, Ball1.Y, 5, sf::Color::Green)); } // Ball Gravitation Ball1.Y += 0.05f; // Ball Kollision mit Spieler1 if (Ball1.X >= Spieler1.X && Ball1.X <= Spieler1.X+50) { if (Ball1.Y >= Spieler1.Y-5) { Ball1.life = false; Spawn = true; } } App.Display (); App.Clear (); } return EXIT_SUCCESS; } |
C-/C++-Quelltext |
|
1 |
if (App.GetInput().IsKeyDown(sf::Key::Left)) Spieler1.X -= Speed; |
C-/C++-Quelltext |
|
1 |
if (App.GetInput().IsKeyDown(sf::Key::Left)) Spieler1.X -= Speed * App.GetFrameTime(); |
C-/C++-Quelltext |
|
1 2 |
const float Speed = 200.f; Ball1.Y += 150.f; |
Community-Fossil
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »NachoMan« (22.05.2011, 15:59)
Community-Fossil
Ohne VSync feuert die Grafikkarte einfach bilder raus und der Monitor nimmt sich dann die passenden.
wovon aber der Nachweis fehlt und ich noch nie woanders von was gehört habe :/ Vielleicht weiß ja jemand aus dem Forum, was es damit auf sich hat?Zitat
Das verhindert, dass die Signale zu schnell an den Monitor gesendet werden, was zu Schwarzem Schirm (Totalversagen der Grafikengine) oder Programm- und Systemabstürzen durch Bufferüberläufe führen kann
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »BlueCobold« (23.05.2011, 18:34)
Community-Fossil
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Werbeanzeige