越来越多的Flash爱好者已经不满足仅仅去欣赏别人制作的Flash,而是希望自己也能投入到Flash制作者的行列,成为一个Flash高手。今天,我们就用一个游戏实例让广大的Flash爱好者了解一下Flash在制作游戏时的基本思路和方法,文章末尾提供.fla原文件下载,同时大家可以参阅《Flash游戏制作常用代码解析》。
今天我们要做的是一个战斗机攻击敌机的游戏,启动游戏后,单击“start”按钮,游戏开始。用键盘的方向键控制战斗机,按空格键发射子弹摧毁敌机,每摧毁一架战斗机都会加上适当分数,如果分数大于500,就会胜利完成游戏。游戏中要控制战斗机不能被敌机发射的炮弹击中,也不能与飞来的敌机碰撞,否则每碰撞或击中一次都会减少战斗机的生命值,生命值小于0时,游戏失败,退到初始画面。
下面我们分别从思路、元件制作、代码控制几个方面介绍这个小游戏的制作过程。
一、所用的函数和方法
这个游戏的制作思路来自于Flash中的hittest方法,hittest方法主要用于侦测“空间”的交迭,它有两种方法:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fjc/) mymovieclip.hittest(x,y,shapeflag);mymovieclip.hittest(target);
mymovieclip.hittest(x,y,shapeflag):比较x和y坐标是否与mymovieclip实体交迭,shapeflag可以取两个值true和false,取true,则x,y坐标只要与mymovieclip实体(不含边界)的任何一点交迭,函数就返回true,否则返回false。若shapeflag值取false则x,y坐标只要与mymovieclip实体(含边界)的任何一点交迭,函数就返回true,否则返回false。
mymovieclip.hittest(target):比较target代表的实体和本mymovieclip实体是否交迭,交迭函数返回true,否则返回false。游戏中将使用这种方法。
在游戏中还有几个比较重要的语句:duplicatemovieclip方法和duplicatemovieclip方法以及duplicatemovieclip方法。
duplicatemovieclip方法duplicatemovieclip方法
duplicatemovieclip方法
Duplicatemovieclip方法是在主场景中(或在其他影片剪辑中)制作一个影片剪辑实体的复制件,这个复制件将会以某个深度值(深度值高的对象覆盖深度值低的对象)放置在其源实体上。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/fjc/)Removemovieclip方法是删除影片剪辑实体的复制件,不能删除在剪辑时手工放置在舞台上的实体。
Attachmovie方法几乎和duplicatemovieclip方法完全相同,但是它不需要在舞台上事先放置一个实体共选择,而可以直接从库中取出一个影片剪辑实体。本例中战斗机发出的子弹是通过这种方法实现的,而敌机发出的子弹是事先在舞台上放一个剪辑,也就是用duplicatemovieclip来复制的。