刚想学as制作游戏,所以打算先写个贪食蛇小游戏练习下。。
说明:使用的开发工具为 flash builder4.6
首先创建一个as项目。
然后我们先来添加一个config as类将游戏的所有设置都存放在该类下方便更改设置。
以下config类里面的一些基本设置:
好了,接下来我们就来画网格地图。
接下来就是画一个一个圆来代表蛇或者食物,用不同颜色来区分食物以及蛇头,蛇身。
我们先来创建一个Snake类代码如下:
首先要使Snake类继承Sprite,然后构造函数添加color,x,y 3个参数来描述颜色以及初始坐标。
接下来就是画出圆圈:
完整的snake类代码如下:
为什么要把画圆圈的方法提取出来呢?原因就是假如你中途要改变颜色,那么就需要重新画一次,那么这个时候就需要提供一个重新画图的方法了。
好了,我们在地图上添加蛇头看看效果,在snakeGame的构造函数中添加以下代码如图所示
首先前2句代码是把舞台也就是我们可以画画的画板设置为全屏的,
然后就创建地图,创建蛇头,最后把它添加到舞台上。
我们看一下运行效果。
接下来我们来创建食物,首先添加个全局变量
privatevarfood:Snake;
再添加一个方法,如下
这样便可以在网格地图内随机添加食物。效果图如下:(绿色的是食物)
那接下来要做什么呢?当然就是让蛇动了,我们加个定时器让蛇动起来,
我们先在SnakeGane类中定义多一个定时器全局变量timer
privatevartimer:Timer;
然后import flash.events.*;这个包
添加timer使其周期性地引发事件
添加代码后如下
然后再添加3个全局变量
privatevargoX:Number=Config.MAP_GRID_WIDTH;
privatevargoY:Number=0;
privatevarsnakeList:Array = [];
前2个变量用来确认蛇的运动方向,默认刚开始是是往右动。
当goX为负的时候是往左运动,goY为负时是往上。
最后一个是用来存放蛇的节点数组。
SnakeMove方法添加代码如下
好了运行后,发现蛇头不会动,什么原因呢,原因就在我们刚在构造函数里面没有把蛇头添加到存放蛇的数组里面,我们在构造函数里面添加多一句snakeList.push(snakeHead);并且启动计时器
添加后构造函数整体代码如下:
现在运行一下是不是发现会动了呢。哈哈
突然发现写这种图片多的文章还真麻烦,CSDN的编辑器图片大小竟然没办法直接拖动大小的太不给力了,唉,下班了,明天再继续。