0

我正在用 C# 制作一个游戏(这是一个乒乓球游戏),我已经完成了一个“AI”,所以你可以玩一个玩家,我也做了一个多人游戏版本,但是,每当有人按下一个键(向上或下)其他玩家的动作停止,以此类推。

所以基本上你不能玩两个玩家,因为它会打断其他玩家的运动。我不确定我需要做什么(多线程?)或其他一些事情,以便您可以进行流畅的游戏并且不会与其他玩家的击键重叠。

我不能真正搜索(即使我有),因为我不知道要搜索什么。:)

无论如何,希望有办法嘿嘿。

C# Form 应用程序(带有tutorila 游戏引擎/库)。

4

2 回答 2

5

当您按住它时,您依赖于键盘控制器重复该键。是的,当您按另一个键时,它会停止工作。

标准的游戏循环方法是使用 KeyDown 事件来设置按键按下标志并使用 KeyUp 事件来重置它。然后在您的游戏循环中检查该标志并在设置标志时移动桨。您还可以调用 GetAsyncKeyState()。

于 2012-03-30T19:36:13.250 回答
0

我假设你在同一台电脑上玩。

当按下一个键时,您需要在单独的线程中执行这些操作,否则其他玩家的按键将被该线程阻止,直到它完成执行。

我假设正在发生的事情:

玩家1:按住<--

玩家2:按住A

玩家 1: <-- 不再被注册

您需要能够确定何时按下某个键以及何时松开。按下它应该告诉您的应用程序“按下此键”= true。发布时,它现在是错误的。这样,您不会映射到键盘本身,而是映射到应用程序中的对象,并且按键按下/向上触发的事件会更改这些设置。

这样做可以让您按住 <-,然后按住 ->,松开 <- 并让您的 -> 向右移动采取行动。

于 2012-03-30T19:33:19.743 回答