SFML球员运动
SFML player movement
我在 macOS 上使用 SFML 实现玩家移动时遇到问题。
当我使用这段代码时,播放器移动有效:
keyRight = event.type == Event::KeyPressed && event.key.code == sf::Keyboard::Right;
keyLeft = event.type == Event::KeyPressed && event.key.code == sf::Keyboard::Left;
keyUp = event.type == Event::KeyPressed && event.key.code == sf::Keyboard::Up;
keyDown = event.type == Event::KeyPressed && event.key.code == sf::Keyboard::Down;
但是如果我用这个就不行了:
keyRight= sf::Keyboard::isKeyPressed(sf::Keyboard::Right);
keyLeft= sf::Keyboard::isKeyPressed(sf::Keyboard::Left);
keyUp= sf::Keyboard::isKeyPressed(sf::Keyboard::Up);
keyDown= sf::Keyboard::isKeyPressed(sf::Keyboard::Down);
我想使用第二种方法,因为第一种方法似乎不适用于对角线移动(它无法注册同时按下两个键。)我哪里出错了?
对于每个 mac 遇到相同问题的用户,我都设法解决了我的问题。自 os catalina 以来,您必须重新授予编译器(或项目)监视输入的权限。
更多内容在这里:https://en.sfml-dev.org/forums/index.php?topic=26395.0
您可以在每次更改构建中的任何内容时单击它,也可以使用基于事件的移动。
我在 macOS 上使用 SFML 实现玩家移动时遇到问题。 当我使用这段代码时,播放器移动有效:
keyRight = event.type == Event::KeyPressed && event.key.code == sf::Keyboard::Right;
keyLeft = event.type == Event::KeyPressed && event.key.code == sf::Keyboard::Left;
keyUp = event.type == Event::KeyPressed && event.key.code == sf::Keyboard::Up;
keyDown = event.type == Event::KeyPressed && event.key.code == sf::Keyboard::Down;
但是如果我用这个就不行了:
keyRight= sf::Keyboard::isKeyPressed(sf::Keyboard::Right);
keyLeft= sf::Keyboard::isKeyPressed(sf::Keyboard::Left);
keyUp= sf::Keyboard::isKeyPressed(sf::Keyboard::Up);
keyDown= sf::Keyboard::isKeyPressed(sf::Keyboard::Down);
我想使用第二种方法,因为第一种方法似乎不适用于对角线移动(它无法注册同时按下两个键。)我哪里出错了?
对于每个 mac 遇到相同问题的用户,我都设法解决了我的问题。自 os catalina 以来,您必须重新授予编译器(或项目)监视输入的权限。 更多内容在这里:https://en.sfml-dev.org/forums/index.php?topic=26395.0
您可以在每次更改构建中的任何内容时单击它,也可以使用基于事件的移动。