编写小游戏:贪吃蛇
1、需求分析
地图
食物
蛇
使用编程思想:面向对象的编程思想
面向对象核心思想:把一个系统分解为若干个事务,每个事务就是一个类
2、前期准备
在面向对象的编程语言中,类是由两部分组成:属性和方法
属性:对某类事务特征的描述
方法:对某类事务的行为的描述
【地图类】
1)相关属性
宽度 :800px
高度 :400px
颜色 :灰色(#dddddd)
位置 :absolute
2)相关方法
显示方法(show):主要把地图按相关属性进行显示
3、编写代码
定义window.onload显示地图信息
4、食物类分析
【食物类】
1)相关属性
宽度 :20px
高度 :20px
颜色 :green
位置 :absolute
横纵坐标(随机出现),x=0,y=0
2)相关方法
显示方法:主要负责把食物根据相关属性进行显示在地图中
3)算法
食物在贪吃蛇游戏中并不是固定的,而是随机出现的,如何设置一个元素随机出现呢?
横坐标:必须在0-39之间
纵坐标:必须在0-19之间
随机数:Math数学类下的random方法,返回0-1之间的小数
Math.floor(Math.random()*40) 0-39之间
Math.floor(Math.random()*20) 0-19之间
5、实例化食物类并随机显示
7、蛇类分析
【蛇类分析】
1)相关属性
宽度 :20px
高度 :20px
位置 :absolute
三节 :使用数组保存蛇节的信息(横坐标、纵坐标、颜色)
蛇默认运动方向:right
2)相关方法
显示方法(show):用于按照以上相关属性显示蛇的相关信息
实例化蛇类对象,调用show方法,显示蛇
8、定义一个方法,让蛇运动起来
之所以蛇可以运动,我们只需要做一件事:让蛇头决定运动方向,蛇节坐标与前一个坐标进行互换操作。
通过定时器让蛇一直运动下去
9、解决蛇身不断加长问题
10、根据键盘按键改变蛇的运动方向
在Snake蛇类中定义一个setDirect方法
11、让蛇吃食物
我们在运动过程中,只要判断蛇头坐标与食物坐标完全重合就代表吃到食物
解决食物多次出现问题:
12、作业
解决贪吃蛇的两个问题:① 撞墙死问题 ② 吃到自己死问题