【发布时间】:2018-02-21 07:26:03
【问题描述】:
我正在使用 SFML 创建一个简单的游戏。我已经完成了一个带有播放、分数和退出按钮的主菜单。
我有一个类MainMenu,它创建图形部分并处理来自键盘的输入。
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() 函数中调用此方法。
我的问题是,如果我按“s”向下滚动菜单选项以选择选项 1,所选选项会立即返回选项 0,如下图控制台的输出所示:
我做错了什么?
【问题讨论】:
-
可能是因为调用输入处理程序时 int selected= 0?
-
我必须初始化它,这就是为什么我把 selected = 0
-
好的,indexSelection 分配在哪里?
-
打错字了,抱歉。现已编辑
-
但是,当您写
int selected= 0; std::cout << selected;时,您期望什么?