diff --git a/sqr/User/Object/ActiveObject/CharacterObjectClass.nut b/sqr/User/Object/ActiveObject/CharacterObjectClass.nut index 44689d5..4dde1e4 100644 --- a/sqr/User/Object/ActiveObject/CharacterObjectClass.nut +++ b/sqr/User/Object/ActiveObject/CharacterObjectClass.nut @@ -21,6 +21,9 @@ class GameObject.Character extends GameObject.ActiveObject { //动画对象管理器 AnimationManager = null; + //传送阵Flag + TransmitFlag = false; + //属性对象 Attribute = null; @@ -30,6 +33,13 @@ class GameObject.Character extends GameObject.ActiveObject { //职业编号 Job = 0; + //控制器 + Controller = null; + + function _typeof() { + return "character"; + } + function Init(Idx) { //初始化动画组 @@ -51,6 +61,9 @@ class GameObject.Character extends GameObject.ActiveObject { } //构造属性对象 // Attribute = AttributeClass(); + + //分配控制器 + Controller = Object_Controller(this); } @@ -94,7 +107,6 @@ class GameObject.Character extends GameObject.ActiveObject { if (AnimationManager) AnimationManager.SetAnimation(Ani); } - //切换装备 function ChangeEquipment(Equ) { //如果当前装备槽已经有装备则移除 @@ -126,6 +138,42 @@ class GameObject.Character extends GameObject.ActiveObject { AnimationManager.SetName(Name); base.SetName(Name); } + + + //移动速度 + Move_Speed = 500; + + //移动逻辑 + function Move(Dt, X, Y) { + if (!Parent) return; + //在城镇里 + if (typeof Parent == "townmap") { + if (X == 0 && Y == 0) { + //设置回站立动画 + if (AnimationManager.CurrentAni != AnimationManager.RestAni) { + AnimationManager.SetAnimation("RestAni"); + } + } else { + //设置移动动画 + if (AnimationManager.CurrentAni != AnimationManager.MoveAni) { + AnimationManager.SetAnimation("MoveAni"); + } + //设置人物朝向 + if (X > 0) SetDirection(DIRECTION.RIGHT); + else if (X< 0) SetDirection(DIRECTION.LEFT); + MoveBy(Dt * X * Move_Speed * 0.001, Dt * Y * Move_Speed * 0.001 * 0.71, 0); + } + } + } + + + + //更新 + function OnUpdate(Dt) { + base.OnUpdate(Dt); + //控制器逻辑更新 + Controller.OnUpdate(Dt); + } } //通过职业和装备列表来构造一个角色