这个类是角色类,在greed这款游戏中我们分别开拓3种职业, 武士,游戏和炼金术师。
因此我的这个类仅仅是一个基类,满足了玩家的基础操作:
class ActPawn extends Pawn;
我打算给角色赋予一些超越传统RPG中玩家只会在平面中跑步的属性,拥有一些跳跃,攀爬,滑行和走平衡木的技能。因此我确定得要用到以下方面的技术:
1.一些枚举状态让玩家分别能:
穿越狭小的空间,滑行斜坡,平衡木,爬墙,悬挂在边缘,对墙反弹跳,爬杆,爬天花板,交互。
以上属性真的多不是吗,这确实会浪费人很多精力,但是详细思考会有很多益处。
enum EActState
{ EAS_Default,EAS_TightSpaceWalking,EAS_Balancing,EAS_WallClimbing,EAS_PoleClimbig,EAS_CeilingClimbing,EAS_WallJumping,EAS_Interacting
};
2.不难想象,当角色要爬上一个高一点的障碍物时会用到跟骨骼动画。但这里用到了两个bool变量去控制。
var bool bInRootMotion;
var bool bInRootRotation;
//跨越障碍物的检测
var float fVaultLookAheadDist; //检测自己身前多远
var float fVaultHeight; //检测多高
var float fVaultTraceDepth; //翻阅的标尺长度
var bool bVaulting; //当前是否正在跨越
3.由于我的野心过于庞大,暂时先抓住一个实现,那就是爬上高地。我先从Controller去入手然后再回过头来填充这一部分