时间: 2021-07-31 作者:daque
三、代码遏制
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。
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 _y>0) {_y -= speed; sy-=speed} if (key.isdown(key. right) and _x<550) {_x += speed;} if (key.isdown(key.left) and _x>0) {_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; //敌机的遨游速率是一个随机数 _y= random(300)+_height; //敌机的初始y坐标取随机数 _x= 550+_y; _root.firepower=100 ;
} reset() }
onclipevent (enterframe) { if(this.ship1._currentframe==1){ //敌机剪辑在第一帧 _y = sy + speed * math.cos(speed+=0.032); //敌机遨游时有浮动的功效 if(this.hittest(_root.ship)){ //即使该剪辑与战役机相撞 ship1.gotoandstop(2); //敌机爆裂 _root.ship.play(); _root.life-=10; //人命值减10 } if(random(_root.firepower)+1==10){ count++; depth=(count%100)+200; //敌机遨游时发出炮弹 duplicatemovieclip(_root.enemylaser, "num"+count, depth); //炮弹的初始坐标即是敌机暂时地方场所的坐标 _root["num"+count]._x=this._x-40 _root["num"+count]._y=this._y } } _x-=speed if(_x<-10) { reset()}
}