好家伙,这篇移动主角

 

我们先来看看一个好东西,

addEventListener() 方法

(他真的很好用)

 

我们直译一下,就叫他添加事件监听器方法

 

而可监听的对象就有很多啦

我们来了解一下

事件类型:

Web浏览器中可以发生很多种事件。如前所述,所发生事件的类型决定了事件对象中会保存什么信息。

DOM3 Events定义了如下事件类型。

口用户界面事件(UIEvent):涉及与BOM交互的通用浏览器事件。

口焦点事件(FocusEvent):在元素获得和失去焦点时触发。

口鼠标事件(MouseEvent):使用鼠标在页面上执行某些操作时触发。

口滚轮事件(WheelEvent):使用鼠标滚轮(或类似设备)时触发。没有被

口输入事件(InputEvent):向文档中输入文本时触发。览器,

口键盘事件(KeyboardEvent):使用键盘在页面上执行某些操作时触发。

口合成事件(CompositionEvent):在使用某种IME(Input Method Editor,输入法编辑器)输人 存在字符时触发。

 

                                        ----来自《JS高级程序设计》

(红包书,JS的新华字典,刚好它也是红的)

 

在这里,我们想让我们的飞机动起来,我会想:

让飞机随着鼠标移动,那么自然就是添加对应的鼠标移动事件了

让飞机在我按下WASD后随之进行上下左右的移动,那么肯定是添加键盘事件

 

行了思路清晰,开搞

1.添加鼠标移动事件监听,

canvas.addEventListener("mousemove", (e) => {
console.log(e.offsetX, e.offsetY);
let x = e.offsetX - hero.width / 2;
let y = e.offsetY - hero.height / 2;
console.log(x,y,hero.widthh);
hero.x = x;
hero.y = y;
})

 

然后来看看效果:

 

 

好家伙,这不是监听的"mousemove"鼠标移动的吗,怎么变成了"click"点击移动飞机

或许因为在F12的页面,又或许是缓存的原因

 我们去到F12中,在刷新键处右键强制清缓存,并且刷新

然后就搞定了

(哇塞,它终于能动了)

Html飞机大战(六):移动飞机的更多相关文章

  1. [置顶] 【cocos2d-x入门实战】微信飞机大战之三:飞机要起飞了

    转载请表明地址:http://blog.csdn.net/jackystudio/article/details/11730601 不过明眼人一看就知道起飞的不是飞机,是背景,相对运动引起的错觉. 1 ...

  2. [置顶] 【cocos2d-x入门实战】微信飞机大战之四:飞机登场咯

    转载请表明地址:http://blog.csdn.net/jackystudio/article/details/11757175 昨天收到了电子工业出版社寄过来的<cocos2d-x游戏开发之 ...

  3. 微信5.0 Android版飞机大战破解无敌模式手记

    微信5.0 Android版飞机大战破解无敌模式手记 转载: http://www.blogjava.net/zh-weir/archive/2013/08/14/402821.html 微信5.0 ...

  4. js 飞机大战

    完整文件及代码可以在网盘下载,下载链接为:https://pan.baidu.com/s/1hs7sBUs 密码: d83x 飞机大战css定义: <style> #container{ ...

  5. java版飞机大战 实战项目详细步骤.md

    [toc] 分析 飞机大战 首先对这个游戏分析,在屏幕上的物体都是飞行物,我们可以把建一个类,让其他飞行物继承这个类.游戏中应有英雄机(也就是自己控制的飞机).敌人.而敌人应该分为打死给分的飞机(就是 ...

  6. 基于Cocos2d-x-1.0.1的飞机大战游戏开发实例(下)

    在飞机大战游戏开发中遇到的问题和解决方法: 1.在添加菜单时,我要添加一个有背景的菜单,需要在菜单pMenu中添加一个图片精灵,结果编译过了但是运行出错,如下图: 查了很多资料,调试了很长时间,整个人 ...

  7. web版canvas做飞机大战游戏 总结

    唠唠:两天的时间跟着做了个飞机大战的游戏,感觉做游戏挺好的.说是用html5做,发现全都是js.说js里一切皆为对象,写的最多的还是函数,都是函数调用.对这两天的代码做个总结,希望路过的大神指点一下, ...

  8. Cocos2d-x 3.0final 终结者系列教程16-《微信飞机大战》实现

    看到cocos2d-x推出了3.1版本号,真是每月一次新版本号,速度. 另一个好消息就是http://cn.cocos2d-x.org/上线了,祝贺!啥时候把我的视频和教程放上去呢?!! . 视频下载 ...

  9. js实例--飞机大战

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...

随机推荐

  1. 如何删除wps在我的电脑入口中的云文档图标

    本人有强迫症,看着图标很难受,所以就找到了一种注册表删除的方法,操作如下: 呼出注册表面板, WIN+R 输入 regedit 打开注册表 找到如下路径 计算机\HKEY_CURRENT_USER\S ...

  2. Tapdata 数据库实时同步的技术要点

    Tapdata 是由深圳钛铂数据有限公司研发的一款实时数据处理及服务的平台产品,企业可以使用 Tapdata 快速构建数据中台和实时数仓, Tapdata 提供了一站式的解决方案,包括实时数据采集.数 ...

  3. System类的常用方法和StringBuilder的原理

    System类的常用方法1.currentTimeMillis方法2.arraycopy方法 java.lang.System 类中提供大量的静态方法,可以获取与系统相关的信息或系统级操作,在Syst ...

  4. Golang仿云盘项目-2.2 保留文件元信息

    本文来自博客园,作者:Jayvee,转载请注明原文链接:https://www.cnblogs.com/cenjw/p/16459817.html 目录结构 E:\goproj\FileStorage ...

  5. antd vue 折叠面板 v-for 循环点击无效

    问题描述 实现一个折叠面板点击展开,但是必须点击两次才能展开,第一次无效 <a-collapse-panel v-for="(item, index) in dataMap" ...

  6. error: cannot open .git/FETCH_HEAD: Permission denied

    可能原因:该操作的执行者对该目录没有写权限 解决:1.类Unix平台,使用chown将目录改为自己: 2.Windows平台,取消只读选项,给everyone用户所有权限:

  7. wcf连接数据库用sqlhelper,连接数一直没有释放反而增加

    找了一天,发现原因是配置的连接字符串没有加上最大连接数,所以每次请求都是一直增加,而MariaDB默认的连接数是151,为了本地多项目测试已改成以前. 下面是配置的连接字符串:  <add na ...

  8. BUCK 电路PSIM仿真模型搭建之二 (传递函数模块的使用)

    1. 利用S函数模块进行环路仿真 将PI 写成 截止频率的表示形式 Kp* (Ti*s+1)/Ti*s  ,  这里Kp = 20,  Ti = 0.0001  ,  写入仿真模型参数框 仿真结果: ...

  9. docker容器数据管理

    Docker容器数据卷 Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume). 数据卷可以用来存储Docker应用的数据,也可以用来在Docke ...

  10. isNotBlank()方法和isNotEmpty()方法的区别