猫史档案馆


2D(上帝视角)游戏制作干货:如何让玩家知道自己移动了?

用户:奈尹奈尹查看:7 回复:8 评论:7 创建时间:2024-02-05T12:57:17


在2D游戏(玩家角色居中)的制作中,我们常会发现如果仅仅是给其他物体加上wasd移动的脚本,就会导致在纯色背景下、没有其他物体时,wasd怎么按都会感觉玩家并不在动,这种问题该如何解决呢?

我们可以参考一下别人的作品,比如Imagine City,其中的摄像机视角不会一直在玩家的身上,而是在玩家移动后,以较慢的速度跟上玩家

知道动效的具体效果之后就可以去1:1复刻一个同样的效果出来。首先,我们可以把这个动效看作两部分:①玩家动效、②玩家的移动在其他物体上的映射(防止动效影响移动速度)

①:玩家动效并不难实现,整个过程可以看作玩家离中心点越远,wasd按键移动也就越慢。center_image

为了让玩家在停止移动后回到中心点,我们需要先创建一个位于中心点的角色,再让玩家一直面向这个角色并移动,移动速度随玩家与中心点的距离的减小而减慢。center_image

②:为了保证玩家的动效不会影响移动速度,我们要让玩家的移动在其他物体上同样呈现出来。要完成这样的效果,我们需要先再次创建一个角色(我将其命名为测速,故名思意,是用以测量玩家动效的速度)。让“测速”重复地移到玩家的xy坐标(需要设置x、y两个变量,这一步很重要,因为测速的目标是测单次积木执行的时间内玩家的移动)。center_image

(“测速”的脚本)

center_image

(“玩家”的脚本)

这样就可以知道玩家动效的移动情况了,再在所有其他物体上加上以下脚本:center_image

(所有其他角色的脚本)

或者如果其他角色需要持续面向某个会动的角色时,可以换成这种:center_image

(“玩家”的脚本)center_image

(所有其他角色的脚本)


回复

上一页1 页 / 共 1下一页
帅气的小深深帅气的小深深

可以

点赞0


评论


喵喵Alice喵喵Alice

挺不错的哦

 

点赞0


评论


爽快的木叶龙EI49爽快的木叶龙EI49

emm....好像看懂了,又好像没懂...能简单讲一下原理吗(是移动的时候角色向某个方向偏移一点吗?)

点赞0


评论


数字数字数字数字数字数字

牛皮

 

点赞0


评论


26度眠与四叶蓿苜26度眠与四叶蓿苜

留个记号

点赞0


评论


晨风习习晨风习习

留个记号,回头再看

点赞0


评论


ECMP01ECMP01

记号+1

 

点赞0


评论


Zhuan_Zhuan_

摄像机应该可以直接非线性跟上玩家坐标罢(玩家坐标用变量进行运算)显示时让主角直接显示在(玩家坐标x-摄像机x,玩家坐标y,摄像机y)

点赞0


评论