public override bool Update(long delta) { base.Update(delta); if (_currentFrame < TOTAL_FRAME) { // 发起动作 Executor.SetCombatPos((int)(ox + dx * _currentFrame), (int)(oy + dy * _currentFrame)); if (Executor is Monster) { FightingSprite fs = Executor.FightingSprite; fs.CurrentFrame = fs.FrameCnt * _currentFrame / TOTAL_FRAME + 1; } else if (Executor is PlayerCharacter) { FightingSprite fs = Executor.FightingSprite; fs.CurrentFrame = 5 * _currentFrame / TOTAL_FRAME + 1; } } else if (_currentFrame > TOTAL_FRAME) { // 扣血、异常状态的动画 if (!UpdateRaiseAnimation(delta)) { if (Target is PlayerCharacter) { ((PlayerCharacter)Target).SetFrameByState(); } else { Target.FightingSprite.Move(-2, -2); } return(false); } } else if (mTotalMark) { mTotalMark = false; Executor.SetCombatPos(ox, oy); if (Executor is Monster) { FightingSprite fs = Executor.FightingSprite; fs.CurrentFrame = 1; } else if (Executor is PlayerCharacter) { ((PlayerCharacter)Executor).SetFrameByState(); } if (Target is PlayerCharacter) { Target.FightingSprite.CurrentFrame = 10; } else { Target.FightingSprite.Move(2, 2); } } return(true); }
public override bool Update(long delta) { base.Update(delta); if (_currentFrame < TOTAL_FRAME) //发起动作 { Executor.SetCombatPos((int)(ox + dx * _currentFrame), (int)(oy + dy * _currentFrame)); if (Executor is Monster) { FightingSprite fs = Executor.FightingSprite; fs.CurrentFrame = fs.FrameCnt * _currentFrame / TOTAL_FRAME + 1; } else if (Executor is PlayerCharacter) { FightingSprite fs = Executor.FightingSprite; fs.CurrentFrame = 5 * _currentFrame / TOTAL_FRAME + 1; } } else if (_currentFrame > TOTAL_FRAME) //扣血、异常状态的动画 { return(UpdateRaiseAnimation(delta)); } else { Executor.SetCombatPos(ox, oy); if (Executor is Monster) { FightingSprite fs = Executor.FightingSprite; fs.CurrentFrame = 1; } else if (Executor is PlayerCharacter) { FightingSprite fs = Executor.FightingSprite; fs.CurrentFrame = 1; // TODO the old state 眠 } } return(true); }