死神vs火影吧 关注:55,684贴子:1,038,400
  • 2回复贴,共1

进阶:技能冷却/限时发动 教程

取消只看楼主收藏回复

一楼祭度娘


IP属地:江苏1楼2019-08-05 23:19回复
    技能冷却,翻译成设计时的语言就是:在一定时间内不断地使得某技能不可被使用,使技能不可使用的案例为数字君的沉默技能辅助,具体代码在本段下方,效果为禁用SJ。
    $attacker_ctrler.owner_mc_ctrler.getAction().skill1 = null;
    不断使技能不可被使用,也就是使得禁用技能的代码在一段时间内不断地触发,这个效果可以通过在A、B点间每帧都写上禁用技能的代码来实现,当然也有简化写法,称为侦听器写法,需要用到帧频事件,简单的实例附在本段下方,效果为从A点到B点持续执行大括号内的代码(实例内为执行trace("ABCD"))。
    //A点处
    addEventListener(Event.ENTER_FRAME,侦听器的名称);
    function 侦听器的名称(e:Event):void
    {
    trace("ABCD");
    }
    //B点处
    removeEventListener(Event.ENTER_FRAME,侦听器的名称);
    将这两者结合起来就是我们所需要的『技能冷却』了,下面是最终成果,各语句的意义可参考其中的注释。
    //A点处
    //实现$attacker_ctrler接口
    var $attacker_ctrler:*;
    function setAttackerCtrler(attackerCtrler:*):void
    {
    $attacker_ctrler = attackerCtrler;
    }
    //添加侦听器
    addEventListener(Event.ENTER_FRAME,skill1Ban);
    //侦听器的内容
    function skill1Ban(e:Event):void
    {
    //禁用砍技1(SJ)
    $attacker_ctrler.owner_mc_ctrler.getAction().skill1 = null;
    }
    //B点处
    //删除侦听器
    removeEventListener(Event.ENTER_FRAME,skill1Ban);
    //如果主人物在结束禁用时,处于站立状态,则需要下方的代码来手动更新技能状态
    if ($attacker_ctrler.owner_fighter_ctrler.self.mc.currentLabel == "站立")
    {
    //设置砍技1(SJ)的纽带
    $attacker_ctrler.owner_mc_ctrler.setSkill1();
    }


    IP属地:江苏4楼2019-08-05 23:20
    回复
      真的结束


      IP属地:江苏8楼2019-08-06 11:29
      回复