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

要实现这个操作首先要记录下按键被按住的时间,初始是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  更新蓄力技

转载于:https://www.cnblogs.com/undefined000/p/charge-attack-in-2d-platform-game.html

HTML5 2D平台游戏开发#9蓄力技相关推荐

  1. HTML5 2D平台游戏开发#4状态机

    在实现了<HTML5 2D平台游戏开发--角色动作篇之冲刺>之后,我发现随着角色动作的增加,代码中的逻辑判断越来越多,铺天盖地的if() else()语句实在让我捉襟见肘: 这还仅仅是角色 ...

  2. HTML5 2D平台游戏开发#7Camera

    在庞大的游戏世界中,玩家不能一览地图全貌,而是只能看到其中一部分,并一步步探索,这时就要用到一种技术来显示局部的地图,游戏术语称为摄像机(Camera).下面两张图中的白色矩形框表示了Camera的作 ...

  3. Unity 创建2D平台游戏开发学习教程

    了解如何使用C#在Unity中创建您的第一款2D平台游戏 你会学到什么 使用Unity创建2D奥运会 使用可脚本化的对象和单一模式 使用良好的编程实践 创造武器和射弹 使用可脚本化的对象和委托模式创建 ...

  4. 开发html5 2d 赛车游戏以及打包发布为手机APP 第一话 工欲善其事

    按照昔日做给上头拿去找汽车商卖钱的一个赛车游戏APP的经验来说明这个例子(不过当然只说有关游戏的部分) 思路:一幅赛道画面,赛道上面有一辆主角车,可以由玩家用手指拖拽去控制赛车的移动 设置计时器,画面 ...

  5. 移动开发之我见-移动平台游戏开发技术的前世今生

    随着智能手机平台的兴起,移动平台应用开发变成现在热门的话题,而在应用开发中,游戏的开发占有举足轻重的位置,而移动平台的开发技术,尤其是游戏的开发技术在近几年的变化非常大,从最早门槛低的J2me技术开始 ...

  6. html5 2d,3d游戏引擎

    html5 2d,3d游戏引擎 http://biz.turbulenz.com/developers posted on 2014-10-12 21:58 雨亭 阅读(...) 评论(...) 编辑 ...

  7. 使用Flash Builder 4.5进行多平台游戏开发

    转自:使用Flash Builder 4.5进行多平台游戏开发 目录 设置新项目 配置移动平台 优化技巧和诀窍 提交应用程序 延伸阅读 需求 预备知识 要求拥有使用Flash Builder开发项目的 ...

  8. 2d手机游戏开发_我的手机游戏如何在2周内获得365K应用商店下载(以及为什么我退出独立游戏开发公司…...

    2d手机游戏开发 by William Kwan 关冠伟 我的手机游戏如何在2周内获得365K应用商店下载(以及为什么以后我退出独立游戏开发者) (How My Mobile Game Got 365 ...

  9. 移动平台游戏开发介绍

    2.移动平台游戏开发介绍 转载于:https://www.cnblogs.com/zwj-199306231519/p/9148888.html

  10. 2D动作游戏开发与实现(翻译) .

    本文为 cping1982 主持翻译,如有转载,请严格按照如下方式显示标明译文作者及出处,以示尊重! 译者:cping1982 原文:http://blog.csdn.net/cping1982/ar ...

最新文章

  1. Ajax 通过 Request Payload 体发送 JSON 数据体
  2. java一定时间间隔的定时任务_Java 定时任务---Timer
  3. IOS开发之Autolayout——“Content Compression Resistance”和“Content Hugging”
  4. java自定义分页标签_自定义分页标签--仿javaeye分页效果
  5. 6.6折票仅剩3天 | BDTC 2019全日程公布,哪些是你感兴趣的话题?
  6. Chrome浏览器可以修改特定页面背景色吗?Chrome浏览器修改特定页面背景色的方法
  7. 信息学奥赛一本通C++语言——1107:校门外的树
  8. Oracle系统中表外键的更名
  9. javaweb学习--jsp的四种属性范围
  10. c++ qt qlistwidget清空_Qt音视频开发16-mpv通用接口
  11. 如何用abaqus建造8号槽钢并分析槽钢的受力
  12. Docker|安装docker toolbox ,拉取镜像并在浏览器中打开 2021-05-29
  13. 服务器性能与功率,服务器电源功率并非越大越好
  14. AIRIOT答疑第3期|如何使用物联网平台的可视化组态引擎?
  15. 移动宽带密码重置----如何更换路由器----------------绝杀技
  16. 不限空间大小 会赚钱的网盘 收益模式详解
  17. 让卫浴间四季花香 最懂你的智能马桶 ——安华智能坐便器aB13017-1众测报告
  18. 使用flownet2进行flow warping error的计算
  19. 实现用户登录权限验证
  20. php excel 导出超时,PHP数据导出超时、内存不足的解决

热门文章

  1. android 串口 汉字乱码,Arduino软串口出现乱码
  2. excel单个对象用poi导出,并设置每个sheet得最大行数防止报错
  3. 如何用URL Scheme H5链接,直接打开微信小程序
  4. php+剧影评系统 毕业设计-附源码140859
  5. 计算机原始时代到现在著名的黑客
  6. php 判断非负整数,PHP-检测负数
  7. “peter piper picked a peck of pickled peppers“统计这段绕口令有多少个以p开头的单词 String中方法:split/startWith
  8. 控制台报错: Another version of Vue Devtools seems to be installed. Please enable only one version at a ti
  9. IE浏览器在地址栏针对param直接输入中文导致乱码的解决方案
  10. EagleEye: Fast Sub-net Evaluation for Efficient Neural Network Pruning(论文阅读)