Improve horizontal movement
This commit is contained in:
parent
ae5f62fcd4
commit
0dcaa0422b
1 changed files with 25 additions and 8 deletions
33
src/Main.cpp
33
src/Main.cpp
|
@ -306,9 +306,11 @@ int main()
|
||||||
sf::IntRect(120, 0, 14, 16)
|
sf::IntRect(120, 0, 14, 16)
|
||||||
});
|
});
|
||||||
|
|
||||||
bool rotate = true;
|
bool rotate = false;
|
||||||
bool move_left = true;
|
bool move_left = false;
|
||||||
bool move_right = true;
|
bool move_right = false;
|
||||||
|
bool move_left_immediate = false;
|
||||||
|
bool move_right_immediate = false;
|
||||||
bool snap = false;
|
bool snap = false;
|
||||||
sf::Clock update_clock;
|
sf::Clock update_clock;
|
||||||
sf::Clock move_clock;
|
sf::Clock move_clock;
|
||||||
|
@ -341,14 +343,29 @@ int main()
|
||||||
break;
|
break;
|
||||||
case sf::Keyboard::Left:
|
case sf::Keyboard::Left:
|
||||||
move_left = true;
|
move_left = true;
|
||||||
|
move_left_immediate = true;
|
||||||
|
move_clock.restart();
|
||||||
break;
|
break;
|
||||||
case sf::Keyboard::Right:
|
case sf::Keyboard::Right:
|
||||||
move_right = true;
|
move_right = true;
|
||||||
|
move_right_immediate = true;
|
||||||
|
move_clock.restart();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case sf::Event::KeyReleased:
|
||||||
|
switch (event.key.code) {
|
||||||
|
case sf::Keyboard::Left:
|
||||||
|
move_left = false;
|
||||||
|
break;
|
||||||
|
case sf::Keyboard::Right:
|
||||||
|
move_right = false;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -359,7 +376,7 @@ int main()
|
||||||
update_clock.restart();
|
update_clock.restart();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool is_move_frame = move_clock.getElapsedTime().asMilliseconds() > 200;
|
bool is_move_frame = move_clock.getElapsedTime().asMilliseconds() > 125;
|
||||||
if (is_move_frame) {
|
if (is_move_frame) {
|
||||||
move_clock.restart();
|
move_clock.restart();
|
||||||
}
|
}
|
||||||
|
@ -379,13 +396,13 @@ int main()
|
||||||
|
|
||||||
// Horizontal movement
|
// Horizontal movement
|
||||||
int movement = 0;
|
int movement = 0;
|
||||||
if (move_left || is_move_frame && sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Left)) {
|
if (move_left_immediate || is_move_frame && move_left) {
|
||||||
movement--;
|
movement--;
|
||||||
move_left = false;
|
move_left_immediate = false;
|
||||||
}
|
}
|
||||||
if (move_right || is_move_frame && sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Right)) {
|
if (move_right_immediate || is_move_frame && move_right) {
|
||||||
movement++;
|
movement++;
|
||||||
move_right = false;
|
move_right_immediate = false;
|
||||||
}
|
}
|
||||||
if (movement != 0) {
|
if (movement != 0) {
|
||||||
for (auto tile : block.get_tiles()) {
|
for (auto tile : block.get_tiles()) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue