我正在创建一个足球模拟游戏,我想制作比赛的 2D 视图。我的比赛有90分钟,场上有22名球员。如何为玩家保存移动/路径,使其不会占用大量空间。我知道我可以保存它,例如
Minute: min,
Player: id,
X: xCoord,
Y: yCoord
然后使用 jQuery 将对象从 A 点移动到 B 点,但我确信这不是最好的解决方案,因为它需要大量空间和数据库条目。我正在使用MongoDB,但欢迎所有建议。
玩家如何移动?他们在主循环的每一步中移动一点?或者他们走长直线,然后突然转弯,走其他直线?在第一种情况下,您可能需要保存每一毫秒左右(主循环的每一步),或者您可以每十步或每秒保存一次它们的位置,等等。重播可以插值保存的点(认为重播看起来会像那样"粗略",它可以节省数据库中的大量空间)。在第二种情况下(直线),您可以保存玩家转向另一个方向的点。在这种情况下,您将保存它们的位置,角度和速度(显然还有时间)。
第一个表可以是(间隔可能超过 1ms,具体取决于机器的功率):
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
或类似的东西。目录是以度为单位的方向。希望对您有所帮助!