FLASH as3制作飞机游戏教程
游戏结束后,点击左上角的xxms重新开始游戏。有两类,一类是自己,一类是敌人。将您的类命名为Ball1.as:
Package {//ball1类是玩家操作的球。
导入flash . display . *;
导入flash . events . *;
导入flash . text . *;
导入flash . utils . *;
公共类Ball1扩展Sprite {
公共变量lable:TextField = new TextField();
公共var速度:int = 60
公共var Stage 1:Stage;
public var ball list:Array = new Array();
公共var Timer:Timer = new Timer(1);
公共函数ball 1(Stage 1:Stage){
this . stage 1 = stage 1;
init();
}
公共函数init():void {//初始化
stage1.addChild(标签);
graphics.lineStyle(1,0);
graphics.drawCircle(0,0,10);
x = stage 1 . stage width/2;
y = stage 1 . stage height/2;
stage 1 . addevent listener(mouse event。MOUSE_DOWN,mouseDownHandler);
stage1.addEventListener(事件。ENTER_FRAME,ENTER FRAME handler 2);
timer . start();
timer . addevent listener(timer event。TIMER,TIMER handler);
}
公共函数timer handler(e:timer event):void {
lable . text = " "+e . target . current count+" ms ";
}
公共函数mouseDownHandler(e:Event):void {
stage1.addEventListener(事件。ENTER_FRAME,ENTER FRAME handler 1);
stage 1 . addevent listener(mouse event。MOUSE_UP,mouseUpHandler);
}
公共函数mouseUpHandler(e:Event):void {
stage 1 . removeeventlistener(事件。ENTER_FRAME,ENTER FRAME handler 1);
stage 1 . removeeventlistener(mouse event。MOUSE_UP,mouseUpHandler);
}
公共函数enter frame handler 1(e:event){//控制球的移动。
var speedX:int = speed *(stage 1 . mousex-x)/math . sqrt((stage 1 . mousey-y)*(stage 1 . mousey-y)+(stage 1 . mousex-x)*(stage 1 . mousex-x);
var speedY:int = speed *(stage 1 . mousey-y)/math . sqrt((stage 1 . mousey-y)*(stage 1 . mousey-y)+(stage 1 . mousex-x)*(stage 1 . mousex-x);
var x 1:int;
var y 1:int;
if(math . ABS(speedX)& lt;math . ABS(stage 1 . mousex-x)){
x 1 = x+speedX;
}否则{
x 1 = stage 1 . mousex;
}
if(math . ABS(speedY)& lt;math . ABS(stage 1 . mousey-y)){
y 1 = y+speedY;
}否则{
y 1 = stage 1 . mousey;
}
if(x 1 & lt;0) {
x = 0;
} else if(x 1 & gt;stage.stageWidth) {
x = stage.stageWidth
}否则{
x = x 1;
}
if(y 1 & lt;0) {
y = 0;
} else if(y 1 & gt;stage.stageHeight) {
y = stage.stageHeight
}否则{
y = y 1;
}
}
公共函数enter frame handler 2(e:event):void {//判断游戏是否结束。
for(var I:int;我& ltballList.lengthi++) {
if(math . sqrt((x-ball list . x)*(x-ball list . x)+(y-ball list . y)*(y-ball list . y))& lt;15) {
timer . reset();
for(var j:int;j & ltballList.lengthj++) {
ballList[j].stop run();
}
lable . addevent listener(mouse event。点击,CLICK handler);
打破;
}
}
}
公共函数clickhandler (e: mouse事件):void {//控制游戏的开始。
for(var j:int;j & ltballList.lengthj++) {
ballList[j].initXy();
ballList[j].startRun();
}
lable.text =
x = stage 1 . stage width/2;
y = stage 1 . stage height/2;
timer . start();
lable . removeeventlistener(mouse event。点击,CLICK handler);
}
}
}
敌军级Ball2.as:
包{//ball2类,可以当敌人子弹。
导入flash . display . *;
导入flash . events . *;
公共类Ball2扩展Sprite {
公共var ball1:雪碧;
公共var速度:int = 30
public var speedX:int = 0;
public var speedY:int = 0;
公共函数Ball2(ball1:Sprite) {
this . ball 1 = ball 1;
init();
initXy();
startRun();
}
公共函数init():void {//初始化
graphics.lineStyle(1,0);
graphics.drawCircle(0,0,5);
}
公共函数enter frame handler(e:event){//控制项目符号的移动。
if(math . random()& lt;0.1){
var d:int = math . sqrt((ball 1 . x-x)*(ball 1 . x-x)+(ball 1 . y-y)*(ball 1 . y-y));
if(d = = 0){ d = 1 };
speedX = speed *(ball 1 . x-x)/d;
speedY = speed *(ball 1 . y-y)/d;
}
x+= speedX;
y+= speedY;
}
公共函数startRun(){
this.addEventListener(事件。ENTER_FRAME,ENTER FRAME handler);
}
公共函数stopRun(){
this.removeEventListener(事件。ENTER_FRAME,ENTER FRAME handler);
}
公共函数initXy():void {//初始化项目符号开始的位置。
var xy:Number = math . random();
if(xy & lt;0.25) {
x = xy * 550 * 4;
y =-10;
} else if(xy & lt;0.5) {
x = 560
y =(xy-0.25)* 400 * 4;
} else if(xy & lt;0.75) {
x =(xy-0.5)* 550 * 4;
y = 410;
}否则{
x =-10;
y =(xy-0.75)* 400 * 4;
}
}
}
}
然后用fla文件初始化两个类:
导入flash . text . *;
导入flash . net . *;
var ball:ball 1 = new ball 1(stage);//定义ball1
var ball list:Array = new Array();//定义balllist数组
for(var I:int = 0;我& lt20;I++) {//实例化balllist
ballList.push(新ball 2(ball));
addChild(ball list);
ball . ball list = ball list;
}
addChild(球);
var lable:TextField = new TextField();
lable.text = " sliz
lable.x = 530
lable.y = 380
addChild(标签);
lable . addevent listener(mouse event。点击,CLICK handler);
函数clickHandler(事件:MouseEvent ):void {
navigateToURL(新URLRequest ("/space/?534614" ) );
}
//我复印了两份,一份给你,一份给我。我也在学习。