2. 計時器與重覆使用的程式:
FL1.1的Call(frame label):
Flash 4沒有function寫法,只有frame action,要重複利用的code是寫在一個無關的frame上,利用它的frame label來執行Call(frame label)指令模擬function。所以接下來主遊戲程式使用到的重複code,都將寫在一個timerFunc MovieClip中。
"timerFunc" MovieClip:
[圖10] 時間軸上配置,前三格為計時器程式後面留給Call()使用(善用空間..=P)
Frame 1:
Frame 2:
Frame 3:
這樣一個簡單的計時器程式就完成了~~
接下來處理重複利用的程式:
Frame label 「beHit」: 判斷小人頭有無被打,會傳入hitNum告知被打號碼
Frame label 「pause」: 暫停遊戲,由於小人頭動畫有特別簡化,所以可以很方便的利用簡短的程式將所有動畫停止
Frame label 「replay」: 判斷小人頭有無被打,會傳入hitNum告知被打號碼
現在可以先測試Movie去看看倒數計時器有沒有效果囉!
to be continued...
Flash 4沒有function寫法,只有frame action,要重複利用的code是寫在一個無關的frame上,利用它的frame label來執行Call(frame label)指令模擬function。所以接下來主遊戲程式使用到的重複code,都將寫在一個timerFunc MovieClip中。
"timerFunc" MovieClip:
[圖10] 時間軸上配置,前三格為計時器程式後面留給Call()使用(善用空間..=P)
Frame 1:
timer = getTimer();
//getTimer()重出江湖嚕!^^,先抓取timer起始值
Frame 2:
if ((getTimer()-timer)>=1000) {
//當getTimer抓到一秒時,就回到frame1重新抓起始值;
if (_root.sec<=0) {
tellTarget ("/") {
gotoAndStop("end");
//遊戲結束
}
_root.end_txt = "You got total\n" add _root.score add " heads!!";
//string相加一定要使用add代替+
call("pause");
//將動畫停止
stop();
} else {
_root.sec--;
//減秒
gotoAndPlay(1);
}
}
Frame 3:
gotoAndPlay(2);
//不滿一秒就是重複回到frame 2
這樣一個簡單的計時器程式就完成了~~
接下來處理重複利用的程式:
Frame label 「beHit」: 判斷小人頭有無被打,會傳入hitNum告知被打號碼
myName = "head_mc_" add hitNum;
if (_root[myName].isActive) {
tellTarget ("/" add myName) {
gotoAndPlay("beHit");
//爆血動畫
}
_root.score++;
}
Frame label 「pause」: 暫停遊戲,由於小人頭動畫有特別簡化,所以可以很方便的利用簡短的程式將所有動畫停止
for (i=1; i<10; i++) {
myName = "head_mc_" add i;
if (_root[myName].isActive) {
//有動作的小人頭才要stop
tellTarget ("/" add myName) {
stop();
}
}
}
tellTarget ("/headsControler") {
gotoAndStop(1);
}
stop();
//這個stop是指計時器迴圈stop喔!
Frame label 「replay」: 判斷小人頭有無被打,會傳入hitNum告知被打號碼
for (i=1; i<10; i++) {
myName = "head_mc_" add i;
if (_root[myName]._currentframe != 1) {
//有動作的小人頭才要繼續play
tellTarget ("/" add myName) {
play();
}
}
}
tellTarget ("/headsControler") {
play();
}
play();
//這個play是指計時器迴圈play喔!
現在可以先測試Movie去看看倒數計時器有沒有效果囉!
to be continued...
怎麼不貼連結在MMUG呢?
ReplyDeleteFlash on Mobile Device需要這樣的好文.