https://github.com/hsiangleev/game-snake
贪吃蛇
https://github.com/hsiangleev/game-snake
Last synced: 12 months ago
JSON representation
贪吃蛇
- Host: GitHub
- URL: https://github.com/hsiangleev/game-snake
- Owner: hsiangleev
- Created: 2017-09-17T02:45:31.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-17T03:28:56.000Z (almost 9 years ago)
- Last Synced: 2024-12-28T06:10:32.714Z (over 1 year ago)
- Language: JavaScript
- Homepage: https://hsiangleev.github.io/game-snake/index.html
- Size: 31.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# 简易贪吃蛇
[链接地址](https://hsiangleev.github.io/game-snake/index.html)
* 沙箱模式封装图片加载函数,对外暴露loadImg(imgUrl,Fn)函数,
其中imgUrl为图片地址(对象),Fn为回调函数。
* 创建整个游戏函数,封装为DrawSnake,单例模式对外暴露DrawSnake()
* 原型中创建随机生成食物函数food,思路为把20(整个游戏以20为一个单位)的倍数放入数组,随机取出其中一个。
* 初始化蛇身
* 蛇头移动(headMove())
* 每次移动之前获取当前的蛇头坐标
* 重新获取蛇身节点
* 若屏幕宽度小于768,则认为是手机端,显示控制按钮,否则为键盘控制
* 初始化四个方向布尔值,按钮或键盘改变的是布尔值真假,每次只有一个为真
* 若蛇头碰撞到四周,则over为true;若蛇头碰到蛇身,则over为true。
* 蛇身移动
* bodyMoveDelete(),未吃到食物,则删除蛇尾,并把蛇尾添加到蛇头
* bodyMoveClone(),吃到食物,则复制蛇头节点为新节点,修改坐标为原蛇头坐标,添加到蛇头,并重新生成食物
* bodyArr()
* 所有蛇身坐标存入数组,用以判断蛇头是否撞到蛇身,即蛇头坐标等于数组其中的一个
* 用蛇身的长度来确定得分
* 设置游戏难度
通过点击难度按钮修改定时器执行时间