编写小游戏:贪吃蛇

编写小游戏:贪吃蛇

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、作业

解决贪吃蛇的两个问题:① 撞墙死问题 ② 吃到自己死问题

原文地址:https://www.cnblogs.com/nyxd/p/5364612.html