Implement moving the player
Player: Add rotation and linear speeds, as well as their current state. Player: Allow to move in the local coordinates and compute world-speed equivalent. Player: Update movement axis while rotating. World: Add a function to advance a step. Main: Handle key events, add world step in the main loop.
This commit is contained in:
parent
cad775f88e
commit
b47052aa4d
5 changed files with 80 additions and 3 deletions
40
main.cpp
40
main.cpp
|
@ -3,7 +3,6 @@
|
|||
|
||||
#include "World.h"
|
||||
|
||||
// TODO: Handle inputs to move player
|
||||
// TODO: Find a way to go to edges instead of just equally split (?)
|
||||
|
||||
int main()
|
||||
|
@ -18,16 +17,53 @@ int main()
|
|||
world.render(window);
|
||||
window.display();
|
||||
|
||||
sf::Event event{};
|
||||
sf::Clock frameTime;
|
||||
while (window.isOpen())
|
||||
{
|
||||
sf::Event event;
|
||||
while (window.pollEvent(event))
|
||||
{
|
||||
if (event.type == sf::Event::Closed)
|
||||
window.close();
|
||||
else if (event.type == sf::Event::KeyPressed) {
|
||||
switch (event.key.code) {
|
||||
case sf::Keyboard::Key::Escape:
|
||||
window.close();
|
||||
break;
|
||||
case sf::Keyboard::Key::Left:
|
||||
world.player.currentRotationSpeed = -world.player.rotationSpeed;
|
||||
break;
|
||||
case sf::Keyboard::Key::Right:
|
||||
world.player.currentRotationSpeed = world.player.rotationSpeed;
|
||||
break;
|
||||
case sf::Keyboard::Key::Up:
|
||||
world.player.updateSpeed(1, 0);
|
||||
break;
|
||||
case sf::Keyboard::Key::Down:
|
||||
world.player.updateSpeed(-1, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (event.type == sf::Event::KeyReleased) {
|
||||
switch (event.key.code) {
|
||||
case sf::Keyboard::Key::Left:
|
||||
case sf::Keyboard::Key::Right:
|
||||
world.player.currentRotationSpeed = 0;
|
||||
break;
|
||||
case sf::Keyboard::Key::Up:
|
||||
case sf::Keyboard::Key::Down:
|
||||
world.player.updateSpeed(0, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
window.clear();
|
||||
|
||||
world.step(frameTime.restart().asSeconds());
|
||||
world.render(window);
|
||||
window.display();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue