2D Platformer控件

这是超级肉男孩。 超级肉男孩有很好的控制。 当您死于“超级肉童”时,您知道这是您的错。

像超级肉男孩。

容易吧? 我的意思是,视频游戏行业已经活跃并且运转了40多年。 控件必须有一个简单易用的柠檬压缩魔术公式,尤其是对于像平台游戏这样的基本简单且经久不衰的游戏类型。

好吧,不是那么快。 在制作第一个游戏的过程中,通常手头的首要任务是弄清楚游戏的控件。 在我当前的项目(Spelunky的精神继任者)中,我花了整整一周的空闲时间在互联网上搜寻用于平台游戏角色移动的完美代码。 事实证明,虽然大多数这类游戏都具有可靠的控件,但它们实际上感觉有所不同,并且有细微差别使它们与众不同。

我要说的是,有多种应对平台游戏运动的方法,每种方法最终都有一个微妙而独特的最终结果。 我发现有两种简单的方法可以在Unity中模拟运动并获得理想的结果。


使这种运动与众不同的是瞬时速度变化 。 没有加速的概念-停止和走动是即时的,这意味着游戏会感到响应,但也有些不切实际。 通过这种代码,对角色的空中操纵确实非常容易。 我认为这些控件具有学习曲线,可能适合您的风格游戏,也可能不适合。

加速是这类控件中游戏的名称。 您可以控制启动和停止的速度,但是要意识到的是,您不能使这种运动瞬间完成。 我个人认为这是要走的路,因为它最终感觉更加有机,并为依赖平台元素的游戏增加了良好的学习曲线和独特的才能。


那么为什么它们不同呢?

最终归结为使用AddForce而不是手动更改velocity属性。 幸运的是,这两个选项都支持冲突检查。 老派的惯用动作代码更改了速度属性,以便立即开始在给定方向上移动,但仍然使用力使玩家跳动。 试一试—任一个都可以为您的游戏工作!