0:greed的pawn

Posted on 2015-02-15 15:29  neocsl  阅读(530)  评论(0编辑  收藏  举报

  这个类是角色类,在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去入手然后再回过头来填充这一部分