访问 http://www.qqread.com/flash/s824346020.html
三:给游戏添加Action动作脚本
最后的游戏就是添加Action动作脚本了。
新建一个图层,命名为ACTION,设置第2祯的祯标签为start, 设置第9祯的祯标签为dup, 设置第15祯的祯标签为gotoDup, 设置第22祯的祯标签为reStart.
在第一祯添加如下AS:
Mouse.hide();
startDrag("/pointer", true);
//游戏开始前,首先隐藏鼠标,然后使瞄准器变为可拖动状态
sShoot = new Sound();
sShoot.attachSound("sShoot");
//新建一个sound声音对象,然后从外部导入射击的音效Sshoot,使用attachsound方//法将此声音绑定
sExp = new Sound();
sExp.attachSound("sExp");
////新建一个sound声音对象,然后从外部导入射击的音效Sexp,使用attachsound方//法将此声音绑定
stop();
在第2祯添加如下AS:
score = 0;
//设置初始得分为0
playTime = 100;
//设置游戏时间为100秒
var expX;
var expY;
//定义两变量,代表飞机的坐标
cDepth = 100;
pDepth = 0;
numPlane = 0;
numCloud = 0;
//定义变量,分别代表飞机和云的深度和数量
_root.attachMovie("mP", "pointer", 300);
startDrag("/pointer", true);
在第9祯添加如下AS:
if (Math.random()<0.2 && numCloud<5) {
numCloud++;
_root.attachMovie("mCloud", "c"+cDepth, cDepth);
cDepth = (++cDepth)%100+100;
}
//复制白云
if (Math.random()<0.3 && numPlane<7) {
_root.attachMovie("mPlane"+(1+random(3)), "P"+pDepth, pDepth);
numPlane++;
with (eval("/p"+pDepth)) {
_x = -20-random(120);
_y = 150+random(60);
}
pDepth = (++pDepth)%100;
}
//复制飞机,并使用随机函数设置飞机出现的坐标
在第15祯添加如下AS:
gotoAndPlay("Dup");
//返回到祯Dup复制飞机
在第22祯添加如下AS:
_root.pointer.removeMovieClip();
//游戏结束后,从游戏中删除瞄准器
在第50祯添加如下AS:
Mouse.show();
//显示鼠标
for (i=0; i<100; i++) {
removeMovieClip ("/c"+(100+i));
removeMovieClip ("/p"+i);
}
stop ();
//删除游戏中所有复制出来的飞机和白云
最后的时间线如图14所示:
图14
到这里,一款精彩的空战射击游戏就制作完成了,您可以按照相似的制作方法,制作一款比较传统的纵版射击游戏。此实例其实是设计空战类射击游戏的通用思路,其它飞行射击游戏其实是在此基础上扩展成的,所以还可以进一步丰富游戏的功能,加强游戏的可玩性。
更多内容请看游戏开发、网络游戏攻略、游戏策划专题,或进入讨论组讨论。
最后的游戏就是添加Action动作脚本了。
新建一个图层,命名为ACTION,设置第2祯的祯标签为start, 设置第9祯的祯标签为dup, 设置第15祯的祯标签为gotoDup, 设置第22祯的祯标签为reStart.
在第一祯添加如下AS:
Mouse.hide();
startDrag("/pointer", true);
//游戏开始前,首先隐藏鼠标,然后使瞄准器变为可拖动状态
sShoot = new Sound();
sShoot.attachSound("sShoot");
//新建一个sound声音对象,然后从外部导入射击的音效Sshoot,使用attachsound方//法将此声音绑定
sExp = new Sound();
sExp.attachSound("sExp");
////新建一个sound声音对象,然后从外部导入射击的音效Sexp,使用attachsound方//法将此声音绑定
stop();
在第2祯添加如下AS:
score = 0;
//设置初始得分为0
playTime = 100;
//设置游戏时间为100秒
var expX;
var expY;
//定义两变量,代表飞机的坐标
cDepth = 100;
pDepth = 0;
numPlane = 0;
numCloud = 0;
//定义变量,分别代表飞机和云的深度和数量
_root.attachMovie("mP", "pointer", 300);
startDrag("/pointer", true);
在第9祯添加如下AS:
if (Math.random()<0.2 && numCloud<5) {
numCloud++;
_root.attachMovie("mCloud", "c"+cDepth, cDepth);
cDepth = (++cDepth)%100+100;
}
//复制白云
if (Math.random()<0.3 && numPlane<7) {
_root.attachMovie("mPlane"+(1+random(3)), "P"+pDepth, pDepth);
numPlane++;
with (eval("/p"+pDepth)) {
_x = -20-random(120);
_y = 150+random(60);
}
pDepth = (++pDepth)%100;
}
//复制飞机,并使用随机函数设置飞机出现的坐标
在第15祯添加如下AS:
gotoAndPlay("Dup");
//返回到祯Dup复制飞机
在第22祯添加如下AS:
_root.pointer.removeMovieClip();
//游戏结束后,从游戏中删除瞄准器
在第50祯添加如下AS:
Mouse.show();
//显示鼠标
for (i=0; i<100; i++) {
removeMovieClip ("/c"+(100+i));
removeMovieClip ("/p"+i);
}
stop ();
//删除游戏中所有复制出来的飞机和白云
最后的时间线如图14所示:
图14
到这里,一款精彩的空战射击游戏就制作完成了,您可以按照相似的制作方法,制作一款比较传统的纵版射击游戏。此实例其实是设计空战类射击游戏的通用思路,其它飞行射击游戏其实是在此基础上扩展成的,所以还可以进一步丰富游戏的功能,加强游戏的可玩性。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Flash教程 常用短语trace();使用 (0次浏览)
- 贪吃蛇游戏代码翻译 (0次浏览)
- 把fla文件输出成和swf一样的gif文件 (0次浏览)
- 什么是AS2.0面向对象编程 (0次浏览)
- AS3学习笔记 (0次浏览)
- Flash交互式动画之星座查询器制作 (0次浏览)
- AS3.0的类及绑定 (0次浏览)
- AS3 中的反射 (0次浏览)
- AS3 技巧和提示 (0次浏览)
- 利用引导线制作动态爱心两例 (0次浏览)



