SFML播放器运动



我在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

您可以在每次更改构建中的任何内容时单击它,也可以使用基于事件的移动。

最新更新