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

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

最新文章

  1. CoreData的一些简单运用
  2. 并发两个Thread的怪事——已解决
  3. Codeforces Round #257(Div.2) D Jzzhu and Cities --SPFA
  4. 手动配置Ubuntu Linux系列3-缺省网关和主机名
  5. Caused by: java.lang.NullPointerException, java.lang.reflect.InvocationTargetExc
  6. git切换远程
  7. 【python问题系列--1】SyntaxError:Non-ASCII character '\xe5' in file kNN.py on line 2, but no encoding declared;
  8. HTTP长连接、短连接使用及测试
  9. Android Studio 代码无提示,无颜色区分
  10. HttpServlet
  11. iOS .tbd
  12. .NET Core PartialView 与 Ajax
  13. hex文件格式
  14. ansible的管理与剧本
  15. Java基于opencv实现图像数字识别(一)
  16. [UGUI]圆形Image
  17. Windows下MongoDB安装配置
  18. Sublime Es6教程2-基本语法
  19. java.lang.ClassNotFoundException: org.apache.commons.beanutils.DynaBean
  20. Linux下php-fpm进程过多导致内存耗尽问题

热门文章

  1. Hadoop打包成jar包在集群上运行时出现的各种问题以及解决方案
  2. MySQL读写分离-架构
  3. 代码编辑器[0] -> Vim/gVim[0] -> 基于 Python 的 gVim 环境配置(Windows)
  4. python 字符串最长公共前缀
  5. ThinkPHP的自动验证常用的正则
  6. HTML <form> 标签的 accept-charset 属性
  7. tq2440实验手册qt编译问题
  8. 15 个 Docker 技巧和提示
  9. Ext JS 5 gpl版本 官方原版的下载方法
  10. java学习之输入,输出流