0
私はSFMLを使って簡単なゲームを作成しています。私は、プレイ、スコア、および終了ボタンを持つメインメニューを完了しました。 グラフィック部分を作成し、キーボードからの入力を処理するクラスMainMenu
があります。SFMLゲームメニュー選択スイッチ
void MainMenu::InputHandler(sf::RenderWindow & window)
{
int selected= 0;
std::cout << selected;
sf::Event event;
while (window.pollEvent(event))
{
switch (event.type)
{
case sf::Event::Closed:
window.close();
break;
case sf::Event::KeyPressed:
switch (event.key.code)
{
if (selected>= 0 && selected<= 3)
{
case sf::Keyboard::S:
selected++;
std::cout << selected;
break;
case sf::Keyboard::W:
selected--;
std::cout << selected;
break;
}
}
break;
}
}
私はGame.cpp
クラスで私のgameLoop()
関数内でこのメソッドを呼び出します。
: 私の問題は、私はオプション1を選択するためのメニューオプションをスクロールダウンして「S」キーを押すと、選択したオプションは、ショー下の画像では、コンソールにouptutとして、すぐに戻ってオプションを0にするということです
私は間違っていますか?
入力ハンドラを呼び出したときにint = 0が選択されている可能性があります。 –
私はそれを初期化する必要があります。そのため、selected = 0を設定します。 – Koosshh56
Ok、およびindexSelectionはどこに割り当てられていますか? –