SFML でキーが押された (保持されていない) かどうかを受け取る方法、またはそのような効果を模倣する方法はありますか?
ここでイベントをポーリングします。
while (window.pollEvent(event));
そして、ループの後半で、スコープ外ですが、同じイベントで、次のように読みました。
if (event.type == sf::Event::KeyPressed)
{
if (event.key.code == sf::Keyboard::Up)
{
decision--;
if (decision < 0)
decision = CHARACTER_MAX - 1;
}
}
上矢印を押し続けると連続してdecision
減少します。sを使用しsf::event
て、押したときではなく、最初に押したときに読み取ることができますか?
また、それが不可能な場合、または sfml に慣れていない場合、グローバル化された変数をほとんどまたはまったく使用せずにそのようなものを模倣する最良の方法は何でしょうか? (などis_already_held
)、たとえばhttps://gamedev.stackexchange.com/questions/30826/action-button-only-true-once-per-press
これが唯一の方法 (より広いスコープで変数を宣言する) かもしれないことは理解していますが、スコープを継続的に終了し、できるだけ頻繁にグローバル変数から離れようとするため、そうしないことをお勧めします。