【发布时间】:2022-11-14 00:19:56
【问题描述】:
我正在尝试在 sfml 中制作按键系统,但我目前实施的方式仅返回按键而不是单按键。 我希望用户按下某个键并将分数增加 1,这意味着我需要检查按键而不是按住。
if (sf::Keyboard::isKeyPressed(Input::sfml_keys[2]))
{
HandleButton(Input::sfml_keys[2]);
std::cout << "g" << std::endl;
}
这就是我目前使用的将数据发送到 HandleButton 的方法:
void Keyboard::HandleButton(int key)
{
m_key = key;
switch (m_key)
{
//G key has keypressed and Increase score events
case 6:
{
if (m_key == sf::Keyboard::G)
{
Event* keyboard_event = new Event(m_key, EventType::KeyReleased);
EventHandler::AddEvent(keyboard_event);
Event* increaseScore = new Event(EventType::IncreaseScore);
EventHandler::AddEvent(increaseScore);
}
break;
}
我想知道是否有人可以告诉我如何在 SFML 中实现按键而不是按住。
我尝试使用 KeyRelease 而不是 KeyPressed,但问题在于我不知道要更改什么的初始代码块。
【问题讨论】:
标签: c++ keyboard sfml keypress