1. 预览
2. 实现思路
- 实现食物类,食物坐标和刷新食物的位置,以及获取食物的坐标点;
- 实现计分面板类,实现吃食物每次的计分以及积累一定程度的等级,实现等级和分数的增加;
- 实现蛇类,蛇类分为蛇头和蛇身,蛇头有方向,蛇身每一节跟着前一节移动;
- 实现控制器类,初始化上边实现的各个类,同时绑定键盘事件,实现方向的修改;
- 使用 requestAnimationFrame 实现页面刷新,蛇移动,坐标点的更新。
3. 食物类
- 接口 Point 的实现,用于返回食物的坐标点;
- maxX 和 maxY 用于记录横向和纵向的最大坐标值;
- 实现 change 实现食物的刷新;
3.1 传入当前蛇的坐标点,用于判断刷新的点是否是蛇中间的坐标点;
3.2 使用 Math.round 和 Math.random 生成一个食物坐标点 (x,y);
3.3 过滤 snakes 蛇坐标点,看看该点是否存在蛇中;
3.4 如果存在,continue 跳出该次循环,继续生成新的坐标,走3.2,3.3流程;
3.5 不存在,就保存该坐标点,跳出循环,完成此次坐标的