首页 > 解决方案 > 我将如何跟踪赛车游戏中玩家和 AI 的位置?

问题描述

概括:

所以,正如问题所暗示的那样,我正在尝试开发一款赛车游戏。虽然,我需要创建一个系统来跟踪玩家和 AI 所处的位置。位置如第一名、第二名、第三名等。

我试过的:

起初,我打算使用 Jimmy Vegas 在他的一个教程中制作的系统来开发赛车游戏,但该系统仅适用于两辆汽车和一个封闭的赛道/电路。我的游戏是一款越野赛车游戏,这意味着赛道是开放的,玩家可以在那里建立自己的捷径,并且没有墙壁会限制玩家在地图上漫游的能力。这使得 Jimmy Vegas 的系统对我的赛车游戏类型毫无用处。我试图弄乱代码以找到一种仍然使用他的系统的方法,但我担心它不会起作用。任何帮助将不胜感激!

标签: c#unity3dracing

解决方案


可能的解决方案

我不会为此编写代码,因为它过于特定于实现,但这里有一些清单伪代码。

使用以下公式计算两个玩家之间的相对位置:

  1. 首先按圈数比较。
  2. 如果圈数相同,则按检查点进行比较。
  3. 如果检查点相同,则使用距离函数与下一个检查点进行比较。这个函数可能像欧几里得距离一样简单,但我建议您使用任何用于 AI 寻路的方法。

如果您想要所有玩家的绝对位置,请制作一个数组,并使用圈数对其进行排序,然后通过检查点打破平局,最后根据距离打破平局。

即使是每帧都运行这样的一百个实体比赛也不应该有任何问题。


推荐阅读