gpt4 book ai didi

c++ - Sfml 文本输入箭头键

转载 作者:行者123 更新时间:2023-11-30 05:22:02 24 4
gpt4 key购买 nike

我正在用 sfml 制作控制台风格的游戏。它是图形界面,但游戏本身包含控制台。我正在使用 Text Entered 事件在控制台中写东西,但我也想用箭头键移动光标(控制台光标而不是鼠标)。为了在文本输入事件中更具体,我使用 event.text.unicode 作为键值。但是箭头键 unicode 值在我的电脑上不起作用。我用 37 作为左箭头,39 作为右箭头,但它不起作用。这是我的控制台的关键进程功能。

void Console::update(int unicode) {
if(unicode == 8) { // Backspace
deleteLast();
} else if(unicode == 13) { // Enter
newLine();
} else if(unicode == 37) { // Left arrow key
currentX--;
std::cout << "Left arrow" << std::endl;
} else if(unicode == 39) { // Right arrow key
currentX++;
std::cout << "Right arrow" << std::endl;
} else { // Normal characters
buffer[(currentY == 0) ? currentX : (currentY * maxColumn) + currentX] = (char)unicode;
currentX++;
if(currentX == maxColumn - 1) {
newLine();
}
std::cout << "[KEY TYPED] X: " << currentX << " Y: " << currentY << std::endl;
}
}

提前致谢:)

编辑:我想我解决了。我使用 KeyPressed 事件来处理特殊键。和 TextEntered 用于处理普通字符。

最佳答案

遇到同样问题的 friend :
从事件类型变量中,首先检查它是否是键盘事件

if(event.type == sf::Event::KeyPressed)

然后检查它是否是一个箭头:

if(event.key.code == sf::Keyboard::Up)
//do stuff
if(event.key.code == sf::Keyboard::Down)
//do stuff

关于c++ - Sfml 文本输入箭头键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39859419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com