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 |
const sf::Vector2f CGame::calcVelocity(b2Vec2 direction) { const float speed = 500; b2Vec2 new_posi, old_posi; old_posi = Charakter.getPosition(); Charakter.update(b2Vec2((direction.x * speed) * Timer->getElapsed(), (direction.y * speed) * Timer->getElapsed())); simulatePhysics(); new_posi = Charakter.getPosition(); //Invert Speed for SFML sf::Vector2f velocity; velocity.x = (new_posi.x - old_posi.x) * -1; velocity.y = (new_posi.y - old_posi.y) * -1; return velocity; } |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
hat velocity einen einfluss, oder ist das nur zum anzeigen da?
Ich verstehe nicht warum die Wände von SFML neu ausgerichtet werden müssen?
Normal sollte sich deine Spielfigur durch die Weltbewegen und die Kamera folgt der Spielfigur und alles andere bleibt an seinem Platz (abgesehen von Gegnern und so).
Wenn schon Box2D benutzt wird, wieso die Geschwindigkeit jeden Frame ändern? Die linear velocity sollte doch wohl ohnehin immer gleich bleiben, denn Geschwindigkeit ist schließlich Strecke pro Zeit. Wozu die jeden Frame neu ausrechnen und neu zuweisen?
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
die Geschwindgikeit wird berechnet und dann INVERTIERT an die SFML Sprites gegeben.
Die Sprites bleiben in der Regel an Ort und Stelle.
Wenn ein Objekt bei Box2d an Position 10,10 und in SFML an Position 100,100 dann bleiben die Objekte da. Nur die Kamera wechselt ggf. die Position (der Spielfigur folgend) bei SFML entspricht die Kamera sf::View.
Werbeanzeige