苹果笔记本电脑macos15.0系统下基于sfml3.0.0库,用c++编写俄罗斯方块游戏。编译后已经可以运行,但是始终对键盘的按键没有响应。查了sfml官方网页对这方面的用法,我这个写法(相关代码如下)是没有问题的啊,有哪位大神碰到或研究过这种问题吗,帮忙解答一下,先谢了:
while (window.isOpen())
{
//处理输入事件
while(const std::optional event = window.pollEvent()){
if (event->is<sf::Event::Closed>()){
std::cout << "close window!" << std::endl;
window.close();
}
if (event->getIf<sf::Event::KeyPressed>() && !gameOver) {
Tetromino temp = currentPiece;
//测试左方向键
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Left)){
temp.x--;
std::cout<<"Left key pressed." << std::endl;
}
//测试A键
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::A)) {
temp.x--;
std::cout << "A key pressed." << std::endl;
}
//other proecess ...
}
}
}
苹果的输入法设置过,没有用,sfml库的官方网页的示范用法也看过了,感觉自己没错。有点怀疑是不是需要重新编译sfml库啊。上面特意加的两行打印语句,在运行时即是按了左方向键或A键,都不会运行,,,就是键盘没有识别这个事件。但我的键盘在其他情况下都是可以正常使用没有问题的。也问过deepseek/腾讯元宝等一堆ai终端app,答案都没用啊,解决不了。。。
用,sfml库的官方网页的示范用法也看过了,感觉自己没错。有点怀疑是不是需要重新编译sfml库啊。上面特意加的两行打印语句,在运行时即是按了左方向键或A键,都不会运行,,,就是键盘没有识别这个事件。但我的键盘在其他情况下都是可以正常使用没有问题的。也问过deepseek/腾讯元宝等一堆ai终端app,答案都没用啊,解