【问题标题】:SFML moving two players with different buttons at the same timeSFML 同时用不同的按钮移动两个玩家
【发布时间】:2017-06-25 22:57:23
【问题描述】:

我使用 SFML 创建了简单的游戏(玩家可以运行、跳跃等按下箭头),我如何在一台计算机上同时为两个玩家制作相同的游戏(第二个玩家将使用 WASD 移动)?

【问题讨论】:

  • 嗨,Papi4,欢迎来到 StackOverflow。可以向我们展示您的尝试吗?请花时间阅读How to Ask
  • 关于 2 个玩家 1 kbd 的快速警告,便宜的键盘可能会出现鬼和阻塞。我建议也有控制器支持。但我猜用户可以使用 2 个键盘。

标签: sfml


【解决方案1】:

您可以访问使用sf::Keyboard 类按下的键。 sf::Keyboard 是一个静态类,所以你不需要创建一个唯一的实例,这里有一个简单的例子:

if(sf::Keyboard::isKeypressed(sf::Keyboard::Key::W))
{
    Player1.Move(1, 1);
}

if(sf::Keyboard::isKeypressed(sf::Keyboard::Key::Left))
{
    Player2.Move(1, 1);
} 

我假设您当前正在使用window.PollEvent(event),这种方法的问题是您每个循环周期只轮询一个事件,因为事件被添加到队列中。使用上面的代码,您应该能够同时按下多个键并处理两个动作。

【讨论】:

  • 不太真实的 RE 事件 - 您可以(并且应该)在每个循环中处理整个事件队列,并且可以轻松处理多个按钮按下
猜你喜欢
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-11
  • 2022-06-10
  • 2023-02-25
相关资源
最近更新 更多