我正在使用 Flare3D 在 Flash 中制作 3D 游戏,并且我有一条由长直线段和短曲线段组成的轨道。玩家可以自由驾驶他们的汽车,但我需要能够防止他们掉头并在赛道上向后行驶。
关于如何做到这一点的任何想法?
我正在使用 Flare3D 在 Flash 中制作 3D 游戏,并且我有一条由长直线段和短曲线段组成的轨道。玩家可以自由驾驶他们的汽车,但我需要能够防止他们掉头并在赛道上向后行驶。
关于如何做到这一点的任何想法?
我不知道 AS3 语法,但总体思路是定义每个段的行进方向(至少是直线段)和可接受的偏差。然后,如果玩家的方向不在偏差范围内,那么你让他们回到正轨或让他们崩溃或任何你想要的。
例子:
直线轨道段为 30 度。偏差为 +-20。在你开始踢他们的屁股之前,用户的方向可以是 10 到 50 度之间的任何地方。
一种方法是对轨道进行分段,并且对于轨道的每一段都有一个它所面对的方向(正如 boo 所说)所以如果轨道朝北,即 0/360,那么在那个点的轨道是 0。在他们第一次转弯之后,假设右边是 90,那么那个点的轨道的值为 90。
一旦你有足够的细分,并且它们都有方向,那么你能做的就是向前看。因此,如果它们位于第 10 段,请查看第 11 段,并使用该段值作为 boo 指向的限制(+/- 20 度)。这可能会解决您在转弯时遇到的任何问题,让他们能够通过转弯,但仍然能够撞车。
这假设您跟踪他们当前所在的段,并且前面只有一个段。如果曲目有选择,您可能必须采用它。
还,
如果他们试图让汽车慢慢转向,我会同意 Boo 的观点。检查汽车在道路上的角度,只允许有这么大的变化,也许添加一个声音,强制他们已经将车轮转动到尽可能远,这样他们就明白为什么它不再转动了。
如果他们在尝试时移动得很快,我会添加一个碰撞动画,然后将他们的汽车重置回正轨。用户将学会避免面对错误的方式,因为当你这样做时它会崩溃。