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 |
// Hauptfunktion des Programmes JSnake //#include "CJSnake.hpp" #include <SFML\Graphics.hpp> #include <SFML\System.hpp> #include <SFML\Window.hpp> int main() { //Fenster erstellen sf::RenderWindow Window(sf::VideoMode(800,600,32), "Test Test"); //Spielschleife while (Window.IsOpened()) { //Events behandeln sf::Event Event; while(Window.GetEvent(Event)) { //Fenster schließen falls Event ist Exit if(Event.Type == sf::Event::Closed) Window.Close(); } // Fenster weiß füllen Window.Clear(sf::Color(0,0,0)); //Fenster zeigen Window.Display(); } return 0; } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sc4v« (01.09.2010, 14:04)
Zitat
[...]auch nur alle 20 Pixel in eine andere Richtung bewegen dürfen[...]
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 |
// width und height stehen für die Größe deines Rechtecks // x und y für die Schlangenkoordinaten // und rx und ry für die linke obere Ecke deines Rechtecks. if (x <= rx || x >= (rx + width)) { // Schlange stößt x-seitig gegen das Rechteck, Geschwindigkeit in die x-Richtung negieren } else if (y <= ry || y >= (ry + height)) { // Schlange stößt y-seitig gegen das Rechteck, Geschwindigkeit in die y-Richtung negieren } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Architekt« (03.09.2010, 11:53)
Wenn sich deine Schlange immer kästchenweiße fortbewegen soll, dann rechne nicht +/-1, je nach Richtungsänderung auf die aktuelle Position, sondern eben 20 Pixel. Zum Start der Schlange solltest du dann eine Position berechnen (linke obere Ecke des Rects) welche sich in dem Raster befindet.Jetzt soll sich meine Schlange (Sprites und Rects alle 20x20 Pixel) auch nur alle 20 Pixel in eine andere Richtung bewegen dürfen, damit nicht sowas passiert wie auf dem Screen zu sehen: Die "Schlange" kann sich ungewollt frei bewegen... ich denke wer Snake kennt weiß was ich meine. Die Schlange soll sich immer in dieses 20*20 FeldSystem eingliedern...
C-/C++-Quelltext |
|
1 |
XPos += mSpeed * m_fTime; //m_fTime: Zeit seit dem letztem Frame |
C-/C++-Quelltext |
|
1 2 |
if(YPos%20 == 0) //Bewege die Schlange nach oben |
Community-Fossil
C-/C++-Quelltext |
|
1 2 3 4 5 6 |
MoveTime += Frametime; //frametime in sekunden if(MoveTime > 0.5f) // bewegt die schlange alle 0.5f sek { MoveTime -= 0.5f; move(); } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 |
//Feld initialisieren for(int y=0; y<20; y++) { for(int x=0; x<40; x++) // 0 ist Leer, 1 ist Mauer, 2 ist Schlange { if((y == 0 || y == (20-1) || x == 0 || x == (40 - 1))) mField[x][y] = 1; else mField[x][y] = 0; } } |
Werbeanzeige