用户:
奈尹查看:7 回复:8 评论:7 创建时间:2024-02-05T12:57:17
在2D游戏(玩家角色居中)的制作中,我们常会发现如果仅仅是给其他物体加上wasd移动的脚本,就会导致在纯色背景下、没有其他物体时,wasd怎么按都会感觉玩家并不在动,这种问题该如何解决呢?
我们可以参考一下别人的作品,比如Imagine City,其中的摄像机视角不会一直在玩家的身上,而是在玩家移动后,以较慢的速度跟上玩家。
知道动效的具体效果之后就可以去1:1复刻一个同样的效果出来。首先,我们可以把这个动效看作两部分:①玩家动效、②玩家的移动在其他物体上的映射(防止动效影响移动速度)
①:玩家动效并不难实现,整个过程可以看作玩家离中心点越远,wasd按键移动也就越慢。
为了让玩家在停止移动后回到中心点,我们需要先创建一个位于中心点的角色,再让玩家一直面向这个角色并移动,移动速度随玩家与中心点的距离的减小而减慢。
②:为了保证玩家的动效不会影响移动速度,我们要让玩家的移动在其他物体上同样呈现出来。要完成这样的效果,我们需要先再次创建一个角色(我将其命名为测速,故名思意,是用以测量玩家动效的速度)。让“测速”重复地移到玩家的xy坐标(需要设置x、y两个变量,这一步很重要,因为测速的目标是测单次积木执行的时间内玩家的移动)。
(“测速”的脚本)

(“玩家”的脚本)
这样就可以知道玩家动效的移动情况了,再在所有其他物体上加上以下脚本:
(所有其他角色的脚本)
或者如果其他角色需要持续面向某个会动的角色时,可以换成这种:
(“玩家”的脚本)
(所有其他角色的脚本)