萌新第一次用flash as3做了一款小游戲,但是flash總是報錯說引數不正確,求各位大神幫幫忙!!!以下是代碼
import flash.utils.Timer;
//定義幾個不同型別的變數,用于方便控制游戲的物體的運動
//和級別的顯示,以及時間和成績的記錄
var g:int = 1;
var v:int = 0;
var t:int = 0;
var tt:int = 40;
var level:int = 1;
var fen:Number = 0;
var jishi:int = 0;
var uu:int = 80;
var jia:Boolean = false;
var peng:Boolean = true;
var xing:Boolean = false;
//定義幾個聲音類,用于呼叫庫中的聲音檔案
var flappyflap:Sound=new flappyflap1();
var fall:Sound=new fall1();
var coin:Sound=new coin1();
var Pl:SoundChannel=new SoundChannel();
//呼叫庫中的障礙物
var gd:guan = new guan(0);
//定義一個精靈類,用于存放障礙物
var group:Sprite = new Sprite();
addChild(group);
//呼叫庫中的通關影片剪輯,并把它放到物體合適的位置
var tg:TongTuan=new TongTuan();
tg.x = 557;
tg.y = 149;
//設定幾個顯示物件的排列順序
setChildIndex(palyer,numChildren-1);
setChildIndex(txt,numChildren-2);
setChildIndex(lve,numChildren-2);
setChildIndex(time_mc,numChildren-2);
setChildIndex(shan,numChildren-2);
setChildIndex(hengwen_mc,numChildren-2);
//定義一個計時器,用于記錄時間
var time:Timer = new Timer(1000,0);
time.addEventListener(TimerEvent.TIMER,timeHandler);
time.start();
function timeHandler(event:TimerEvent)
{
jishi++;
time_mc.text="時間: "+String(jishi)//讓時間在舞臺上顯示
;
}
//舞臺注冊監聽事件 用于控制變數的變化,和聲音的播放
stage.addEventListener(MouseEvent.MOUSE_DOWN,DOWN);
function DOWN(event:MouseEvent):void
{
v = -10;
t = 0;
Pl = flappyflap.play();
}
//舞臺注冊幀監聽時間
stage.addEventListener(Event.ENTER_FRAME,down);
function down(event:Event):void
{
t++;
tt++;//控制變數增加
lve.text = "關數:" + String(level);//舞臺顯示關數
group.x -= 3;//控制障礙物移動
palyer.y += v + g * t;
//判斷變數大小,如果大于80開始執行方法內的陳述句
if (tt>=80)
{
jia = true;//指定變數量
news();//呼叫方法
tt = 0;//指定變數數值
}
//判斷玩家的位置范圍
if (palyer.y > 375 || palyer.y < -10)
{
over();//呼叫方法
time.stop();//停止計時
return;
}
//用for回圈遍歷精靈里面的子物件
for (var i1:int =0; i1<group.numChildren; i1++)
{//判斷子物件是否與玩家碰撞,如果碰撞執行下面代碼
if (palyer.hit.hitTestObject(group.getChildAt(i1)) && peng == true)
{
Pl = fall.play();//播放失敗聲音
shan.play();//閃光播放
peng = false;//指定變數型別
time.stop();//停止計時
stage.removeEventListener(MouseEvent.MOUSE_DOWN,DOWN);//移除監聽事件
return;
}
//判斷精靈里的子物件是否x坐標是否小于玩家位置加上精靈位置,如果符合,就執行下列代碼
if (group.getChildAt(i1).x < palyer.x + - group.x - 20 && jia == true && peng == true)
{
jia = false;//指定型別
Pl = coin.play();//播放聲音
fen += 1;//加分
txt.text = "分數:" + String(fen);//舞臺顯示分數
}
//判斷子物件的位置大小,以方便移除子物件
if (group.getChildAt(i1).x <= - group.x - 50)
{ //移除子物件
group.removeChild(group.getChildAt(i1));
}
}
//判斷關數的增加
if (fen>=level*10)
{
level++;
}
if (fen>=10)//積分為10的時間換背景,障礙物間距變小
{
uu = 60;
ditu1.visible=false
;
}
if (fen>=20)//積分為20的時間換背景,障礙物間距變小
{
uu = 40;
ditu2.visible=false
;
}
if (fen>=30)//積分為30的時間換背景,障礙物間距變小
{
uu = 20;
ditu3.visible=false
;
}
if (fen>=40)//積分為40的時間換背景,障礙物間距變小
{
uu = 10;
ditu4.visible=false
;
}
if (fen>=50)//積分為50的時間換背景,障礙物間距變小
{
uu = 1;
ditu5.visible=false
;
}
if (fen>=60)//積分為60的時間換背景,障礙物間距變小
{
xing = true;//指定變數型別
over();//呼叫方法
addChild(tg);//把通關的影像加載到舞臺
}
}
//生成障礙物的方法,通關加載控制影像,并且控制影像大小和旋轉,來生成障礙物
function news()
{
var gd:guan = new guan(0);
var gd1:guan = new guan(gd1.height);
gd.y = 432 - gd.height;
gd1.y = gd1.height - uu;
gd1.rotation = 180;
gd.x = - group.x + 400;
gd1.x = - group.x + 400;
group.addChild(gd);
group.addChild(gd1);
}
//游戲結束時的方法
function over()
{
if (peng==true)
{
Pl = fall.play();//播放失敗聲音
}
stage.removeEventListener(Event.ENTER_FRAME,down);//移除監聽
var jfb:jifenbang = new jifenbang ();//把成績表加載到舞臺。并且放到合適的位置
jfb.x = 158;
jfb.y = 242;
//讓成績表內的文本顯示相應的成績
jfb.jibie_tex.text = String(lve.text);
jfb.fenshu_tex.text = String(txt.text);
jfb.time_tex.text = String(time_mc.text);
addChild(jfb);//加載成績表
//移除不需要的物件
removeChild(txt);
removeChild(lve);
removeChild(time_mc);
//移除不需要的監聽
stage.removeEventListener(MouseEvent.MOUSE_DOWN,DOWN);
stage.removeEventListener(Event.ENTER_FRAME,down);
//注冊一個重玩的監聽函式
jfb.fh_btn.addEventListener(MouseEvent.CLICK, fh);
function fh(event:MouseEvent):void
{
//移除不需要顯示的物件
removeChild(group);
removeChild(jfb);
removeChild(shan);
removeChild(hengwen_mc);
//關閉影片剪輯的點擊模式
shan.mouseEnabled = false;
jfb.mouseEnabled = false;
jfb.children = false;
removeChild(palyer);
if (xing==true)
{
removeChild(tg);
tg.mouseEnabled = false;
tg.children=false
;
}
gotoAndStop(1);//實作跳轉幀
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/65907.html
標籤:其它游戲引擎
上一篇:java程式員圖文并茂細說Unity中呼叫Android的介面
下一篇:VegaPrime
