私は非常にシンプルな2人プレイゲームを作った。その1人はクラゲ、もう1人はSFMLのサメである。唯一の問題は、一度に1つのスプライトしか移動できないことです。これを修正することは可能ですか?どのように修正できますか?C++ SFML - SFMLの2つのキーを同時に押す方法
EDIT:あなたが一つのキーを押すと、キーを離したときにクリアされたときにセットされるフラグを持つことによってそれを解決
if (event.type == sf::Event::KeyPressed)
{
bool D;
bool A;
bool S;
bool W;
bool Up;
bool Right;
bool Left;
bool Down;
if (event.key.code == sf::Keyboard::A)
A = true;
if (event.key.code == sf::Keyboard::D)
D = true;
if (event.key.code == sf::Keyboard::W)
W = true;
if (event.key.code == sf::Keyboard::S)
S = true;
if (event.key.code == sf::Keyboard::Left)
Left = true;
if (event.key.code == sf::Keyboard::Right)
Right = true;
if (event.key.code == sf::Keyboard::Up)
Up = true;
if (event.key.code == sf::Keyboard::Down)
Down = true;
if (D and Right)
{
jelly.move(10, 0)
}
...
}
もちろん、修正することができます。特定のキーが押されたときに押されたキーと移動するスプライトを追跡するだけで済みます。 –
@JesperJuhlしかし、同時に2つのキーが押されているのをどのように追跡することができますか? –
関連するキーが押されたときに 'true'に設定される' bool'変数と、リリース時に 'false'を使用します。そして、あなたのboolをテストして何をするかをテストします。 –