public void Damage() { // 主角与敌人碰撞时(而非踩到了敌人),触发一个旋转动作(其实效果可以做的更有趣一些, // 比如先反弹到某一方向(FireTo),然后再弹回等等,此处仅仅举个例子) if (rotate == null) { // 旋转360度,每帧累加5度 rotate = new RotateTo(360f, 5f); rotate.SetActionListener(new RotateActionListener(this)); AddAction(rotate, hero); } else if (rotate.IsComplete()) { hero.SetFilterColor(LColor.red); // 直接重置rotate对象 rotate.Start(hero); // 重新插入(LGame的方针是Action事件触发且结束后,自动删除该事件,所以需要重新插入) AddAction(rotate, hero); } }
/// <summary> /// 让指定对象执行RotateTo旋转事件 /// </summary> /// /// <param name="o"></param> /// <param name="angle"></param> /// <param name="speed"></param> /// <returns></returns> public RotateTo CallRotateTo(Loon.Action.ActionBind o, float angle, float speed) { if (isClose) { return null; } RotateTo rotate = new RotateTo(angle, speed); AddActionEvent(rotate, o); return rotate; }