HTML5游戏_基于DOM平台跳跃小游戏开发

按键监听

  • 视频讲解

HTML5游戏

  • 效果图

  • 本章知识点:

  • 对象自定义名称属性,可以用变量来命名属性名称

//这段代码把多个属性(品牌, 型号, 排量)赋给名为 汽车 的对象
var 汽车1 =
{品牌: "劳斯莱斯", 型号: "幻影",排量:"6.7T"
};
汽车1.品牌;    //劳斯莱斯var 汽车2 =
{"品牌": "劳斯莱斯", 型号: "幻影",排量:"6.7T"
};
汽车2.品牌;    //劳斯莱斯
汽车2["品牌"]; //劳斯莱斯
  • addEventListener(HTMLDOM事件, 事件触发时执行的函数) 方法用于向指定元素添加事件句柄.同时将HTMLDOM事件传递给事件触发时执行的函数.

新建 按键监听.js

//定义全局对象 按键字符 keycode 编码对应属性
var 按键字符 =
{37: "左",  //左方向键38: "上", //上方向键39: "右", //右方向键40: "下" //下方向键
};
//定义变量 按键内容 来保存按键事件函数的返回值
var 按键内容 = 按键事件(按键字符);
/***@描述:    按键事件 函数*@传参:    按键字符*@参数:   *@返回值:  按键*@创建人:    王天宇*@创建时间:2021/03/02*@修改人和其它信息:
**/
function 按键事件(按键字符)
{//Object.create()方法创建一个新对象按键//定义对象 按键集合 为一个空对象var 按键集合 = Object.create(null);//处理事件方法,通过监听方法来调取,并从监听中获取所对应的 KeyboardEvent 按键事件 传参function 处理按键事件(按键事件) {//Object的hasOwnProperty()方法返回一个布尔值,判断对象是否包含特定的自身,可以判断自身是否存在或判断自身莫格属性是否存在//判断 按键事件.keyCode 的值是否存在于我们定义的 按键字符 对象中if (按键字符.hasOwnProperty(按键事件.keyCode)) {//定义布尔变量 按下 按键事件.type 是 "keydown" 按下=trueconst 按下 = 按键事件.type == "keydown";//这里是个用变量来作为定义的对象名称的方法//给 按键集合 对象添加一个属性(属性名为变量的值)并赋值按键集合[按键字符[按键事件.keyCode]] = 按下;//取消按键事件的默认动作,如方向键默认动作可以在浏览器中移动滚动条,取消后方向键就没有这个默认动作按键事件.preventDefault();}}//监听按键按下动作addEventListener("keydown", 处理按键事件);//监听按键松开动作addEventListener("keyup", 处理按键事件);//返回按键对象return 按键集合;
}//keycode 编号顺序分布
/*
keycode 0 =
keycode 1 =
keycode 2 =
keycode 3 =
keycode 4 =
keycode 5 =
keycode 6 =
keycode 7 =
keycode 8 = BackSpace
keycode 9 = Tab
keycode 10 =
keycode 11 =
keycode 12 = Clear
keycode 13 = Enter
keycode 14 =
keycode 15 =
keycode 16 = Shift_L
keycode 17 = Control_L
keycode 18 = Alt_L
keycode 19 = Pause
keycode 20 = Caps_Lock
keycode 21 =
keycode 22 =
keycode 23 =
keycode 24 =
keycode 25 =
keycode 26 =
keycode 27 = Esc Escape
keycode 28 =
keycode 29 =
keycode 30 =
keycode 31 =
keycode 32 = Space
keycode 33 = Page Up
keycode 34 = Page Down
keycode 35 = End
keycode 36 = Home
keycode 37 = Left Arrow
keycode 38 = Up Arrow
keycode 39 = Right Arrow
keycode 40 = Down Arrow
keycode 41 = Select
keycode 42 = Print
keycode 43 = Execute
keycode 44 =
keycode 45 = Insert
keycode 46 = Delete
keycode 47 = Help
keycode 48 = 0 )
keycode 49 = 1 !
keycode 50 = 2 @
keycode 51 = 3 #
keycode 52 = 4 $
keycode 53 = 5 %
keycode 54 = 6 ^
keycode 55 = 7 &
keycode 56 = 8 *
keycode 57 = 9 (
keycode 58 =
keycode 59 =
keycode 60 =
keycode 61 =
keycode 62 =
keycode 63 =
keycode 64 =
keycode 65 = a A
keycode 66 = b B
keycode 67 = c C
keycode 68 = d D
keycode 69 = e E
keycode 70 = f F
keycode 71 = g G
keycode 72 = h H
keycode 73 = i I
keycode 74 = j J
keycode 75 = k K
keycode 76 = l L
keycode 77 = m M
keycode 78 = n N
keycode 79 = o O
keycode 80 = p P
keycode 81 = q Q
keycode 82 = r R
keycode 83 = s S
keycode 84 = t T
keycode 85 = u U
keycode 86 = v V
keycode 87 = w W
keycode 88 = x X
keycode 89 = y Y
keycode 90 = z Z
keycode 91 =
keycode 92 =
keycode 93 =
keycode 94 =
keycode 95 =
keycode 96 = KP_0
keycode 97 = KP_1
keycode 98 = KP_2
keycode 99 = KP_3
keycode 100 = KP_4
keycode 101 = KP_5
keycode 102 = KP_6
keycode 103 = KP_7
keycode 104 = KP_8
keycode 105 = KP_9
keycode 106 = KP_* KP_Multiply
keycode 107 = KP_+ KP_Add
keycode 108 = KP_Enter KP_Separator
keycode 109 = KP_- KP_Subtract
keycode 110 = KP_. KP_Decimal
keycode 111 = KP_/ KP_Divide
keycode 112 = F1
keycode 113 = F2
keycode 114 = F3
keycode 115 = F4
keycode 116 = F5
keycode 117 = F6
keycode 118 = F7
keycode 119 = F8
keycode 120 = F9
keycode 121 = F10
keycode 122 = F11
keycode 123 = F12
keycode 124 = F13
keycode 125 = F14
keycode 126 = F15
keycode 127 = F16
keycode 128 = F17
keycode 129 = F18
keycode 130 = F19
keycode 131 = F20
keycode 132 = F21
keycode 133 = F22
keycode 134 = F23
keycode 135 = F24
keycode 136 = Num_Lock
keycode 137 = Scroll_Lock
keycode 138 =
keycode 139 =
keycode 140 =
keycode 141 =
keycode 142 =
keycode 143 =
keycode 144 =
keycode 145 =
keycode 146 =
keycode 147 =
keycode 148 =
keycode 149 =
keycode 150 =
keycode 151 =
keycode 152 =
keycode 153 =
keycode 154 =
keycode 155 =
keycode 156 =
keycode 157 =
keycode 158 =
keycode 159 =
keycode 160 =
keycode 161 =
keycode 162 =
keycode 163 =
keycode 164 =
keycode 165 =
keycode 166 =
keycode 167 =
keycode 168 =
keycode 169 =
keycode 170 =
keycode 171 =
keycode 172 =
keycode 173 =
keycode 174 =
keycode 175 =
keycode 176 =
keycode 177 =
keycode 178 =
keycode 179 =
keycode 180 =
keycode 181 =
keycode 182 =
keycode 183 =
keycode 184 =
keycode 185 =
keycode 186 =
keycode 187 = =+
keycode 188 = ,<
keycode 189 = -_
keycode 190 = .>
keycode 191 = /?
keycode 192 = `~
keycode 193 =
keycode 194 =
keycode 195 =
keycode 196 =
keycode 197 =
keycode 198 =
keycode 199 =
keycode 200 =
keycode 201 =
keycode 202 =
keycode 203 =
keycode 204 =
keycode 205 =
keycode 206 =
keycode 207 =
keycode 208 =
keycode 209 =
keycode 210 = plusminus hyphen macron
keycode 211 =
keycode 212 = copyright registered
keycode 213 = guillemotleft guillemotright
keycode 214 = masculine ordfeminine
keycode 215 = ae AE
keycode 216 = cent yen
keycode 217 = questiondown exclamdown
keycode 218 = onequarter onehalf threequarters
keycode 219 = [{
keycode 220 = \|
keycode 221 = ]}
keycode 222 = '"
keycode 223 =
keycode 224 =
keycode 225 =
keycode 226 =
keycode 227 = multiply division
keycode 228 = acircumflex Acircumflex
keycode 229 = ecircumflex Ecircumflex
keycode 230 = icircumflex Icircumflex
keycode 231 = ocircumflex Ocircumflex
keycode 232 = ucircumflex Ucircumflex
keycode 233 = ntilde Ntilde
keycode 234 = yacute Yacute
keycode 235 = oslash Ooblique
keycode 236 = aring Aring
keycode 237 = ccedilla Ccedilla
keycode 238 = thorn THORN
keycode 239 = eth ETH
keycode 240 = diaeresis cedilla currency
keycode 241 = agrave Agrave atilde Atilde
keycode 242 = egrave Egrave
keycode 243 = igrave Igrave
keycode 244 = ograve Ograve otilde Otilde
keycode 245 = ugrave Ugrave
keycode 246 = adiaeresis Adiaeresis
keycode 247 = ediaeresis Ediaeresis
keycode 248 = idiaeresis Idiaeresis
keycode 249 = odiaeresis Odiaeresis
keycode 250 = udiaeresis Udiaeresis
keycode 251 = ssharp question backslash
keycode 252 = asciicircum degree
keycode 253 = 3 sterling
keycode 254 = Mode_switch
*/


  • 有了按键监听函数我们就可以在html中直接显示出监听的按键情况
<!doctype html>
<html><head><meta charset="utf-8"><title>html跳跃小游戏</title><!--CSS样式--><link rel="stylesheet" type="text/css" href="./css/css样式.css"></head><body><h5 id="fps"style="color: #ffffff;">FPS=0</h5><!--pre标签可定义预格式化的文本--><pre id="按键监听测试"style="color: #ffffff;"></pre><!--JS脚本--><script type="text/javascript" src="./js/精灵.js"></script><script type="text/javascript" src="./js/地图数组.js"></script><script type="text/javascript" src="./js/工具函数.js"></script><script type="text/javascript" src="./js/按键监听.js"></script><script type="text/javascript" src="./js/生成地图数据.js"></script><script type="text/javascript" src="./js/生成关卡.js"></script><script type="text/javascript" src="./js/运行帧动画.js"></script><script>//初始化程序function 初始化(){//开始第一个关卡开始关卡(0);}function 开始关卡(n) {//生成地图数据var 新地图数据 = new 生成地图数据(地图数组[n]);//生成关卡var 新关卡 = new 生成关卡(document.body, 新地图数据);//运行帧动画运行帧动画(function(每帧执行时间) {/*这个方法是游戏里每帧运行的所有内容,包括动画/判断碰撞/按键监听等*///播放关卡地图里精灵一帧动画动作新地图数据.动画(每帧执行时间);//重新绘制一帧关卡新关卡.画精灵层(每帧执行时间);//计算每秒帧数document.getElementById("fps").innerHTML = "FPS=" + (1 / 每帧执行时间).toFixed(2);//每帧显示按键信息,&#9代表tab制表符document.getElementById("按键监听测试").innerHTML = "按键左=" + (按键内容.=== true) + "&#9按键右=" + (按键内容.=== true) + "&#9按键上=" + (按键内容.=== true) +"&#9按键下=" + (按键内容.=== true);//执行每帧动作方法 返回false时结束运行帧动画, 返回其他则继续执行动画return true;});}初始化();</script></body>
</html>

运行html,我们可以看到当你按下方向键后会显示指定的内容
运行效果

HTML5游戏_基于DOM平台跳跃小游戏开发_9.按键监听相关推荐

  1. java android 五子棋游戏_基于Android平台五子棋游戏最终版.doc

    基于Android平台五子棋游戏最终版 毕业设计(论文)任务书 毕业设计(论文)题目: 基于android平台的五子棋游戏的设计与实现 毕业设计(论文)要求及原始数据(资料): 1.综述国内基于and ...

  2. 基于android的2048游戏设计,基于Android平台的2048游戏设计与开发.docx

    基于Android平台的2048游戏设计与开发 高级操作系统论文(设计) 题 目 基于Android个人2048 小游戏的设计与开发姓 名 学 号 院. 系 信息学院 专 业 指导教师 职称(学历)目 ...

  3. javascript小游戏_个人网站集成js小游戏《圈小猫》教程及源码

    今天在某网站浏览帖子的时候,发现帖子被删除了,然后弹出了404页面,页面上集成了一个小游戏,小游戏长什么样子呢?看下面这个图! 第一步 查看小游戏源码,发现这个小游戏完全是由JavaScript编写的 ...

  4. python做一个小游戏_利用python做个小游戏

    从本期开始,我们将利用几天的时间用python来做个小游戏,当然,在做小游戏之前,我们必须学会一个做小游戏的第三方库--pygame.可能有人会说,python不擅长或者说不适合用来做游戏,的确是这样 ...

  5. python3.7魔塔游戏_基于Funcode平台的“火锅版魔塔”游戏开发与设计

    2019 年第 2 期 信息与电脑 China Computer & Communication 软件开发与应用 基于 Funcode 平台的"火锅版魔塔"游戏开发与设计 ...

  6. java写华容道_基于java的华容道小游戏

    一.华容道游戏简介 华容道,古老的中国游戏,以其变化多端.百玩不厌的特点与魔方.独立钻石棋一起被国外智力专家并称为"智力游戏界的三个不可思议".它与七巧板.九连环等中国传统益智玩具 ...

  7. c#小游戏_.NET手撸2048小游戏

    前言 2048是一款益智小游戏,得益于其规则简单,又和 2的倍数有关,因此广为人知,特别是广受程序员的喜爱. 本文将再次使用我自制的"准游戏引擎" FlysEngine,从空白窗口 ...

  8. vb趣味编程弹球小游戏_最好玩的微信小游戏集合,总有一款是你没玩过的

    大家好,这里是小雅龙生活趣味时间,自从17年微信推出小游戏程序以来,微信小游戏行业可谓是炙手可热,知道2019年不断有许许多多的微信小游戏如雨后春笋般的生根发芽.下面就由我带大家来看看今年最好玩,最受 ...

  9. 使用python制作聊天框解谜游戏_使用Python写一个小游戏alien invasion!

    最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规的项目开发流程,手把手教大家写个python小游戏,来感受下其中的 ...

最新文章

  1. 2016.1.20 dubbo启动之后机器ip有问题
  2. atitit..主流 浏览器 js 发动机 内核 市场份额 attialx总结vOa9
  3. python爬取贴吧所有帖子-通过python爬取贴吧数据并保存为word
  4. Leetcode题目:Range Sum Query - Immutable
  5. 看看如何解决“SQL Server只能使用Windows身份登录,不能使用sa等Sql server身份进行登录”的问题...
  6. vue怎么给html元素加类选择器,Vue.js——获取Dom对象的类选择器名(className)
  7. P2522 [HAOI2011]Problem b
  8. oracle事务数统计,Oracle 查询事务数
  9. 后序线索树怎样画图_算法新解刘新宇(二)二叉搜索树:数据结构中的“hello world”...
  10. mysql php 乱码问题_解决php与mysql中文乱码问题
  11. 深入理解JavaScript系列(12):变量对象(Variable Object)
  12. python获取指定扩展名的文件_用Python提取文件夹下的特定扩展名的文件
  13. 东方通TongWeb启动springboot报错
  14. 心理学推荐书籍——《九型人格》
  15. 【sketchup 2021】草图大师图像输出与渲染之Enscape渲染(优秀的实时渲染软件)的高级使用【灯光的添加、代理模型的添加、材质编辑器、视频编辑器、全景导出并编辑】
  16. 施努卡:机器视觉公司排名(机器人视觉系统)
  17. Oracle 绑定变量窥视
  18. HSSF生成excel文件损坏
  19. 企业管理者谦虚_为什么谦虚是优秀开发者最重要的特征
  20. 圆的css样式,圆形进度条css3样式

热门文章

  1. flutter 热更新
  2. 魅蓝u10Android版本,魅蓝系列的颜值担当—魅蓝U10测评
  3. 网页设计实训之豆瓣首页(html+css含源码)
  4. h5中如何调起微信的扫一扫功能?
  5. js 判断值是否为数字
  6. mysql创建储存过程 输入学生名子_mysql 创建存储过程
  7. clickhouse删除表的问题
  8. 实现strcmp函数
  9. 计算机考试面试硬件方面的知识,安徽公务员考试专业知识计算机类:计算机硬件系统的组成及其基本工作原理...
  10. 首页攻略运营篇(4):资源管理与运营技巧