• HTML5 2D平台游戏开发#9蓄力技


      在很多动作游戏中,玩家操控的角色可以施放出比普通攻击更强力的蓄力技,一般操作为按住攻击键一段时间然后松开,具体效果像下面这张图:

    要实现这个操作首先要记录下按键被按住的时间,初始是0:

    this.sabreChargeTime = 0;

    接下来是能够施放技能所需要的时间,超过这个时间后松开按键,即可施放出技能,否则无效:

    this.MAX_SABRE_CHARGE_TIME = 150;

    代码结构如下:

    if (key[74]) {//攻击
        this.updateSabreCharge();  //蓄力
    } else {
        this.releasePowerSlash();   //施放攻击
    }
    
    function updateSabreCharge() {
        this.sabreChargeTime++;
    }
    
    function releasePowerSlash(callback) {
        if(this.sabreChargeTime > this.MAX_SABRE_CHARGE_TIME) {
            this.state = STATE.POWER_SLASH;
            this.play();
    
            callback && callback();
        }
        this.resetSabreCharge();    //重置计数器
    }
    
    function resetSabreCharge() {
        this.sabreChargeTime = 0;    
    } 

    可以在角色动作的各个阶段按住攻击键触发蓄力。

    更新日志

      2017/04/09  更新角色跳跃

      2017/04/21  更新角色冲刺

      2017/05/01  更新角色状态机

      2017/05/16  更新角色攻击动画

      2017/05/22  更新角色移动攻击动画

      2017/05/24  更新角色跳跃攻击动画

      2017/06/04  更新地图绘制

      2017/06/22  更新摄像机、长距离冲刺

      2017/07/01  更新指令技

      2017/07/06  更新蓄力技

  • 相关阅读:
    is as运算符
    继承,多态
    封装等
    面向对象
    在JDBC中使用带参数的SQL语句
    我的程序库:HiCSDB
    我的程序库:HiCSUtil
    Java中,将ResultSet映射为对象和队列及其他辅助函数
    Java版的对象关系映射实现
    Java中的基本数据类型转换
  • 原文地址:https://www.cnblogs.com/undefined000/p/charge-attack-in-2d-platform-game.html
Copyright © 2020-2023  润新知