最近在看萧井陌的视频。感觉一些东西挺有意思的,尤其是解决问题的过程,以及一个好程序应该改进的地方。

萧大的GITHUB:github.com/guaxiao/gua.game.js

视频:https://space.bilibili.com/39066904#!/

拖拽

拖拽是3个过程,mousedown,mousemove,mouseup
mousedown:记录最开始的坐标和状态(改为可拖动)
mousemove: 状态可拖动,坐标发生改变
mouseup:记录结束的坐标和状态(改为不可拖动)
 
 

键盘事件监听

//注册键盘监听事件
window.addEventListener('keydown',function(e){
var thisKey = e.key;
)}

逻辑判断

let a = 1,
b,
c = undefined,
d = null ,
f = 'null' ,
g = false,
h = 'false' let aa = {
one : a && 11, //
two : b && 22, //undefined
three : c && 33, //undefined
four : d && 44, //null
five : f && 55, //
six : g && 66, //false
seven : h && 77 //
}
console.log(aa.one,aa.two,aa.three,aa.four,aa.five,aa.six,aa.seven)
let bb = {
one : a || 11, //
two : b || 22, //
three : c || 33, //
four : d || 44, //
five : f || 55, //"null"
six : g || 66, //
seven : h || 77 //"false"
}
console.log(bb.one,bb.two,bb.three,bb.four,bb.five,bb.six,bb.seven)
one : a && 11,
当a为真时,one的属性值为 11
当a为undefined时,one的属性值为undefined
当a为null时,one的属性值为null
当a为false时,one的属性值为false
当a为字符串时,one的属性值为11
two : a || 11,
当a为真时,two的属性值为a的值
当a为null,undefined,false时,two属性值为11
//优先级()> && > ||
let a = 11 && 22 || 33 //22
b = (11 && 22) || 33 //
c = false && 22 || 33 //
d = 11 || 22 && 33 //
e = false || 22 && 33 //
f = (11 || 22) && 33 //
g = (11 && 22) && 33 //
h = false && 22 && 33 //false
i = 11 && 22 || 33 && ( 44 && 55) //
j = (11 && 22) && 33 || 44 && 55 //
k = (11 && 22) && (33 || 44) && 55 && false //false
console.log(a,b,c,d,e,f,g,h,i,j,k)

计算的优先级

括号 > && > ||

在确立优先级的情况下从左往右计算

三元运算符 ?:

作用是判断?前的语句是否为真,为真则执行中间的语句,否则执行后面的语句

log("你是人是鬼?") ? alert("你是人") : alert("你是鬼!")

图片的预加载

先载入图片,这样的话,就好用很多

参考http://www.cnblogs.com/v10258/p/3376455.html

JS写游戏的更多相关文章

  1. 用JS写了一个打字游戏,反正我是通不了关

    今天想写个简单的游戏, 打字游戏好像都没写过, 那么就写打字游戏吧, gamePad包含了关卡的信息, 可以用来调整给个关卡字符下落的速度: getRandom函数会返回一个字符对象, 这个对象包含了 ...

  2. JS写小游戏(一):游戏框架

    前言 前一阵发现一个不错的网站,都是一些用html5+css+js写的小游戏,于是打算学习一番,写下这个系列博客主要是为了加深理解,当然也有一些个人感悟,如果英文好可以直接Click Here. 概述 ...

  3. 原生js写的贪吃蛇网页版游戏特效

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <bo ...

  4. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

    这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...

  5. JS小游戏:贪吃蛇(附源码)

    javascript小游戏:贪吃蛇 此小游戏采用的是面向对象的思想,将蛇,食物,和游戏引擎分为3个对象来写的. 为方便下载,我把js写在了html中, 源码中暂时没有注释,等有空我在添加点注释吧. 游 ...

  6. 一个js小游戏----总结

    花了大概一天左右的功夫实现了一个js小游戏的基本功能,类似于“雷电”那样的小游戏,实现了随即怪物发生器,碰撞检测,运动等等都实现了,下一个功能是子弹轨迹,还有其他一些扩展功能,没有用库,也没有用web ...

  7. js canvas游戏初级demo-躲避障碍物

    在线演示地址 http://200ok.fun:3100/html/game_demo.html 继上次js canvas游戏初级demo-上下左右移动(https://www.cnblogs.com ...

  8. 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理

    [微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...

  9. Node.js写文件的三种方法

    Node.js写文件的三种方式: 1.通过管道流写文件 采用管道传输二进制流,可以实现自动管理流,可写流不必当心可读流流的过快而崩溃,适合大小文件传输(推荐) var readStream = fs. ...

随机推荐

  1. [翻译]Writing Custom DB Engines 编写定制的DB引擎

    Writing Custom DB Engines  编写定制的DB引擎   FastReport can build reports not only with data sourced from ...

  2. vim出现“E212: Can't open file for writing”的处理办法

    在使用vim 对文件或配置进行编辑的时候,在保存时发现当前用户没有写权限.又不想放弃当前编辑的内容,怎么办呢? 来自stackoverflow “For some reason the file yo ...

  3. PYQT4 Python GUI 编写与 打包.exe程序

    工作中需要开发一个小工具,简单的UI界面可以很好的提高工具的实用性,由此开启了我的第一次GUI开发之旅,下面将自己学习的心得记录一下,也做为学习笔记吧!!! 参考:http://www.qaulau. ...

  4. 10-11Linux用户管理规则及用户管理函数

    用户管理: useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage 组管理: groupadd, groupdel, grou ...

  5. 关于Unity中MonoBehaviour的构造函数

    关于Unity中MonoBehaviour的构造函数 在学习Unity MVVM UI框架的时候,一不小给一个继承自MonoBehaviour类的子类编写了自定义构造函数,结果调Bug调了两个钟,特此 ...

  6. 关于类属性值校验的一点记录 【知识点Attribute】

    好久没有进来了,之前励志坚持写博客,记录自己在做代码搬运工这段历程中点滴,可是仅仅只坚持了几天,就放弃了!果然是,世上无难事,只要肯放弃!哈哈……闲话不多说,开始进入正题,给自己留点笔记,避免将来老了 ...

  7. cesium编程入门(六)添加 3D Tiles,并调整位置,贴地

    添加 3D Tiles,并调整位置 3D Tiles 是什么 3DTiles数据集是cesium小组AnalyticlGraphics与2016年3月定义的一种数据集,3DTiles数据集以分块.分级 ...

  8. G - 確率(水题)

    原文链接 G - 確率 Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Submit S ...

  9. [Objective-C语言教程]类和对象(24)

    Objective-C编程语言的主要目的是为C编程语言添加面向对象,类是Objective-C的核心特性,支持面向对象编程,通常称为用户定义类型. 类用于指定对象的形式,它将数据表示和方法组合在一起, ...

  10. linux中rc.d目录下的文件

    参考 http://blog.sina.com.cn/s/blog_414d78870102vqj5.html http://www.360doc.com/content/12/0820/17/933 ...