开发工具:
文件大小: 20kb
下载次数: 0
上传时间: 2020-03-04
详细说明:利用面向对象的方法,实现贪吃蛇。
1. 利用面向对象的思想实现——一个食物对象、一个蛇对象、一个游戏总控对象。
2. 在使用××.prototype= {}重写原型对象的时候,一定要加上一句constructor:该对象。不然会造成实例化出来的实例的constructor为object。
3. 在underscore中,使用_.random(a,b)即可获得a-b中的一个随机数。
4. 在求食物的随机位置的时候,用到了panel.clientHeight/this.height - 1) * this.height。
原理是使用盒子的高度/小球的高度,可以算得最多放多少个小球。因为要控制小球不能超过边界,所以总数量要减去1,数量×高度即为随机位置的最大值。
5. 在蛇对象中,用body数组存放蛇身体每一个部分对象。蛇的绘制过程就是遍历body,在面板上绘制。
6. 蛇的移动分为两部分。
① 蛇节移动到前一个蛇节的位置。直到蛇头后一个蛇节移动到蛇头的位置。
② 根据direction判断蛇头如何移动。
注意:在游戏绘制的过程中,界面的每一次绘制都要**删除**之前的绘制,不然会叠加到一起。
7. 在蛇的闭包中建一个局部数组,存储蛇对象,可以更加方便的删除操作。
8. 只有在原型对象中的方法和属性,外界是可以调用的。
9. 蛇的移动(动画)必然需要定时器协助。定时器的时间,即象征着刷新速度,也就是难度。
10. this所在的函数在哪一个对象中,this就指向谁。单独写一个函数的时候,如果调用之前对象的this,需要备份指针(将对象的this赋值给另一个变量)。
11. JavaScript原生的键盘按下事件(keydown) 中,事件有一个keyCode属性,其值代表按下的键。其中:37—left、38—top、39—right、40—bottom。
12. 边界控制。通过判断蛇头与最大X和Y的关系,判断是否碰到边界。
13. confirm()方法用于显示一个带有指定消息和确认及取消按钮的对话框。
14. window.location.reload(); 重新加载当前文档
15. window.close() 方法用于关闭浏览器窗口。
16. 与食物的碰撞检测:如果蛇头和食物坐标重叠,将蛇尾添加到body中。并重新绘制一个食物点,将之前的食物删掉。
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.