如何自己编写小游戏?
网页教学网:文中所有Fla源代码都打包在文末,供大家下载学习使用。
如果不明白链接名,可以看我的另一个教程《简单射击游戏教程》,可能会有帮助。所有源文件如下:snake类编程。rar
步骤1:初始化“snake”类
新建一个fla文件,在同一个目录下新建一个as文件,命名为Snake.as,类名必须和文件名相同。在fla文件中新建一个snake节点组件,链接名为node,在第一帧和类中编写相应的代码。
步骤1:“snake”类初始化。rar。
第二步:蛇动了。
编写一个move方法,并在init方法中设置时间间隔。
第二步:蛇动了。rar
第三步:键盘改变移动方向。
写一个changeDirection方法,由主场景第一帧的键盘事件调用,控制蛇的方向。
第三步:键盘改变移动方向。rar
步骤4:添加节点
写一个addNode方法,在一条蛇的尾巴的nodes[length-1]的位置生成新的节点。临时添加一个按钮来调用addNode方法并观察结果。
步骤4:添加节点。rar
第五步:碰撞判断
修改移动方法。如果head节点与snake的其他部分一致,clearInterval将删除move的计划调用。同时,changeDirection还需要添加多个判断,使头节点和第二个节点不能重叠。增加这个判断是为了防止一个Bug,一些snake程序没有注意到这一点。出现此错误的原因如下:
假设蛇向右移动,不可能向左改变方向,但是因为move方法是有规律调用的,比如每300毫秒一次,所以在这300毫秒内可能会有很多快速击键。第一次按下,蛇的x方向和y方向变为向下,但是move的执行时间没有向上,然后再按下left。因为数据中蛇的方向发生了变化,你无法捕捉到不能左转的判断,产生了快速按键导致的蛇反方向移动的Bug。只是补充一下上面的判断。
第五步:碰撞判断。rar
第六步:食物分类汇编
创建一个新的Food类,注意用扩展继承MovieClip,让组件可以链接。在主场景中创建新的food组件,链接Food类,该实例被命名为Food,并将其拖动到场景中。把出现和消失的方法写在Food里,做两个临时按钮调用,观察效果。
第六步:写作。rar for food。
完成:吃食物。
在Food中定期调用Appear,通过setsnake引入Snake实例Snake,判断蛇体的坐标,防止新的食物与之重叠。在Snake中,通过setFood引入食物实例Food来判断食物是否被食用并做出相应的处理,比如增加蛇节点,改变setSnake。在场景的第一帧,setSnake也要引入蛇头。
以后还会增加新的功能,比如障碍设置,可以通过改变as文件来完成。虽然类编程比直接控制电影要复杂,但是由于使用了面向对象,以后完善程序时可以根据对象行为来思考。每个方法都是对象的每个行为。任何行为需要改变,都要找到相应的方法去修改,思路清晰。