gpt4 book ai didi

C++ SFML - 如何读取同时按下的 SFML 中的两个键?

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

我做了一个非常简单的双人游戏,一个是水母,另一个是SFML中的鲨鱼。唯一的问题是一次只能有一个 Sprite 移动。这可能修复吗?我该如何修复?

编辑:我的尝试是这样的:

if (event.type == sf::Event::KeyPressed)
{
bool D;
bool A;
bool S;
bool W;
bool Up;
bool Right;
bool Left;
bool Down;
if (event.key.code == sf::Keyboard::A)
A = true;



if (event.key.code == sf::Keyboard::D)
D = true;

if (event.key.code == sf::Keyboard::W)
W = true;

if (event.key.code == sf::Keyboard::S)
S = true;

if (event.key.code == sf::Keyboard::Left)
Left = true;

if (event.key.code == sf::Keyboard::Right)
Right = true;

if (event.key.code == sf::Keyboard::Up)
Up = true;

if (event.key.code == sf::Keyboard::Down)
Down = true;

if (D and Right)
{
jelly.move(10, 0)
}
...



}

最佳答案

或者,您可以使用 sf::Keyboard::isKeyPressed探测键盘在给定点的状态。

您当前代码的一个问题是所有变量都是 if 语句的局部变量,因此在处理下一个事件时会重新初始化。它们应该在 if 之外定义。另一个问题是您没有处理 KeyReleased 事件。

关于C++ SFML - 如何读取同时按下的 SFML 中的两个键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38880133/

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