Flash制作空战游戏(3),Flash制作空战游戏(3)
【 tulaoshi.com - Flash 】
三、代码控制1.回到主场景,把第一个图层改名为“start”,在第一帧中插入关键帧,帧动作为:
function clean() {
for (i in _root) {
_root[i].removeMovieClip();
}
}
_root.clean();
stop();
clean函数用来删除所有多余的影片剪辑,它的功能在第一次运行时没有作用,而在游戏运行后,“plane”的生命值为零时返回这一帧,如果没有clean函数,将出现无数个被复制的影片剪辑。
2.把“start”按钮和“exit”按钮拖入场景中,“start”按钮的动作脚本为
on(release){ //释放鼠标时进入第三帧,开始游戏
gotoAndPlay(3);
}
“exit”按钮的动作脚本为
on (release) { //释放鼠标时,退出游戏
fscommand("quit", "1");
}
3.添加第二层,命名为“victor”,在该层第二帧中插入关键帧,在场景中用文字工具写入“you win”,设置字号为84,颜色为黄色。也插入“start”和“exit”按钮,动作脚本同上。
4.添加第三层,命名为“action”,在该层第三帧插入关键帧,写入代码如下:
enemyNumber=5 //每次画面中出现五个敌人
for(i=0;i<enemyNumber;i++) { //如果画面中敌人数小于五,则复制出敌人的影片剪辑
duplicateMovieClip("enemy","new"+i,30+i)
}
life=100 //生命值为100
score=0; //开始得分为 0
stop( );
5.在该帧场景中添加两个静态文本框和两个动态文本框,用来表示生命值和得分。静态文本框内的内容分别是“生命”和“得分”,第一个动态文本框命变量值为life,第二个动态文本框的变量值为score。
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)6.再增加两个图层,一个命名为 “plane”,一个命名为“enemy”,并分别在第三帧插入关键帧。选中“plane”层的第三帧,把“plane”拖入,剪辑名称为“ship”。选中“enemy”层的第三帧,把“enemy”和“ball”剪辑拖入,剪辑名称分别为“enemy”和“enemylaser”。
右击“plane”剪辑,在动作面板里写入代码:
onClipEvent (load) { //载入时进行初始化
speed=6;
sy=_y;
ang=0;
}
onClipEvent (enterFrame) {
_y = sy + 4 * Math.cos(ang+=0.092); //用cos函可以是飞机有在空中飘动的效果
c=_root . score; //给c 变量赋值,初试状态为“0”
if(c=500){ //如果c的值(得分)大于500,则胜利结束游戏
_root.gotoAndStop(2);
}
if(_root.life<=0){ //如果生命值小于0,则重新开始游戏或退出
_root.gotoAndStop(1);
}
//当玩家按下上、下、左、右方向键时,飞机可以移动
if (Key.isDown(Key.down)and _y<400) {_y += speed; sy+=speed}
if (Key.isDown(Key.up) and _y0) {_y -= speed; sy-=speed}
if (Key.isDown(Key. right) and _X<550) {_x += speed;}
if (Key.isDown(Key.left) and _X0) {_x -= speed;}
if (Key.isDown(Key.space)) {//当按下空格键时,飞机开火,用了一个变量a,使每按一下空格发出一发炮弹,如果不设置这个变量,那么当按下空格键时,炮弹将连续飞出。
if (!a) { //如果a为false
shotCount++;
depth=(shotCount%100)+100
_root.attachMovie("laser", "sparo"+shotCount, depth); //attachmovie方法是从库中直接调用复制影片剪辑“fire”,它的标识符为“laser”。
_root["sparo"+shotCount]._x = this._x+(_width-45)
_root["sparo"+shotCount]._y = this._y; //复制出的“fire”剪辑的初试位置。 a = true;
}
} else {a = false;}
}
7.右击“enemy”剪辑,在“动作”面板里设置代码
onClipEvent (load) {
sy=random (400)+10; //取随机数
function reset(){
ship1.gotoAndStop(1);
speed=random(10)+2; //敌机的飞行速度是一
来源:http://www.tulaoshi.com/n/20160129/1490628.html
看过《Flash制作空战游戏(3)》的人还看了以下文章 更多>>