while(App.isOpen()) {
// event checking
while(App.pollEvent(event)) {
switch (event.type) {
case sf::Event::Closed:
App.close();
break;
case sf::Event::KeyPressed:
// esc detection
if (event.key.code == sf::Keyboard::Escape)
App.close();
// wasd movements
if (event.key.code == sf::Keyboard::W) {
cube.move(0, -1);
if (cube.isColliding(&a))
cube.move(0, +1);
}
if (event.key.code == sf::Keyboard::S) {
cube.move(0, +1);
if (cube.isColliding(&a))
cube.move(0, -1);
}
if (event.key.code == sf::Keyboard::A) {
cube.move(-1, 0);
if (cube.isColliding(&a))
cube.move(+1, 0);
}
if (event.key.code == sf::Keyboard::D) {
cube.move(+1, 0);
if (cube.isColliding(&a))
cube.move(-1, 0);
}
break;
default:
break;
}
}
App.clear();
// start drawing logic
App.draw(cube.get());
App.draw(a.get());
// end drawing logic
App.display();
}
// main game loop
while(App.isOpen()) {
// event checking
while(App.pollEvent(event)) {
switch (event.type) {
case sf::Event::Closed:
App.close();
break;
case sf::Event::KeyPressed:
// esc detection
if (event.key.code == sf::Keyboard::Escape)
App.close();
// wasd movements
if (event.key.code == sf::Keyboard::W)
key_w = true;
else if (event.key.code == sf::Keyboard::S)
key_s = true;
else if (event.key.code == sf::Keyboard::A)
key_a = true;
else if (event.key.code == sf::Keyboard::D)
key_d = true;
break;
case sf::Event::KeyReleased:
// wasd movements
if (event.key.code == sf::Keyboard::W)
key_w = false;
else if (event.key.code == sf::Keyboard::S)
key_s = false;
else if (event.key.code == sf::Keyboard::A)
key_a = false;
else if (event.key.code == sf::Keyboard::D)
key_d = false;
break;
}
if (key_w) {
cube.move(0, -1);
if (cube.isColliding(&a))
cube.move(0, +1);
}
if (key_s) {
cube.move(0, +1);
if (cube.isColliding(&a))
cube.move(0, -1);
}
if (key_a) {
cube.move(-1, 0);
if (cube.isColliding(&a))
cube.move(+1, 0);
}
if (key_d) {
cube.move(+1, 0);
if (cube.isColliding(&a))
cube.move(-1, 0);
}
}
App.clear();
// start drawing logic
App.draw(cube.get());
App.draw(a.get());
// end drawing logic
App.display();
}