0

我正在创建一个足球模拟游戏,我想制作一个 2D 的比赛视图。我的比赛时长 90 分钟,场上有 22 名球员。我怎样才能为玩家保存一个动作/路径,这样它就不会占用很多空间。我知道我可以像这样保存它

Minute: min, 
Player: id, 
X: xCoord, 
Y: yCoord

然后使用 jQuery 将对象从 A 点移动到 B 点,但我确信这不是最好的解决方案,因为它需要大量空间和数据库条目。我正在使用 MongoDB,但欢迎所有建议。

4

1 回答 1

1

球员如何移动?他们在主循环的每一步都移动了一点?还是他们沿着很长的直线前进,然后突然转弯并沿着其他直线前进?在第一种情况下,您可能需要保存每毫秒左右(主循环的每个步骤),或者您可以每十步或每秒保存一次它们的位置,等等。重播可以插入保存的点(认为重播看起来像那样“恶心”,它可以在你的数据库中节省大量空间)。在第二种情况下(直线),您可以只保存玩家转向另一个方向的点。在这种情况下,您将保存它们的位置、角度和速度(显然还有时间)。

第一个表可能是(间隔可能超过 1 毫秒,取决于机器的功率):

PLAYER  TIME(ms)  X  Y
   1       0      0  0
   1       1      0  2
   1       2      0  4
   1       3      0  7
   1       4      0 10
   1       5      4 13

而第二个表将是:

PLAYER  TIME(ms)  X  Y  Dir  Speed
   1       0      0  0   90    2
   1       2      0  4   90    3
   1       4      0 10   60    5

或类似的东西。Dir 是以度为单位的方向。希望有帮助!

于 2014-01-09T00:28:38.883 回答