|
範例如下:
打不中,我們的豬頭教練會不高興喔!
記得開喇叭喔!!!^_^
先建立一個batman的資料夾,先將這個.fla的檔案存在batman資料夾中
產生一個Graphic,命名為"bc",在它的編輯介面設計以下圖形,如圖
1所示

圖 1
產生一個Graphic,命名為"sc",在它的編輯介面設計以下圖形,如圖
2所示

圖 2
產生一個Graphic,命名為"c",在它的編輯介面設計以下圖形,如圖
3所示

圖 3
產生一個Graphic,命名為"stars",在它的編輯介面設計以下圖形,如圖
4所示

圖 4
產生一個MovieClip,命名為"CrossHair",在它的編輯介面設3個圖層
在"cross"圖層,打開Library,把"bc"、"sc"、"c"拖曳到畫面,時間延長為兩格的Frame長度
在"stop"圖層的Frame1設stop();的程式碼,時間延長為兩格的Frame長度,如圖
5所示

圖 5
在"gotit"圖層的Frame2,打開Library把"stars"拖曳到畫面上來,如圖
6所示
圖
6
產生一個MovieClip,命名為"bullet",在它的編輯介面設計以下圖形,如圖
7所示

圖 7
產生一個MovieClip,命名為"Target",在它的編輯介面設計以下三個圖層
在"Base"圖層的Frame1,在畫面上畫一個黑色矩形,時間設為Frame1至Frame40
在"Frame Action"圖層的Frame1設 stop();的程式碼,如圖
8所示

圖 8
在"man"圖層的Frame2,設計爆炸的開始狀況,如圖
9所示

圖 9
在"man"圖層的Frame3,設計爆炸的後續狀況,如圖
10所示

圖 10
在"man"圖層的Frame4,設計爆炸的最後狀況
在"Frame Action"的Frame4,設以下的程式碼,如圖 11所示
圖 11
在"man"圖層的Frame5,設計靶子的原來狀況
,時間為Frame5至Frame40,如圖 12
圖 12
在"Frame
Action"圖層的Frame40,設以下程式碼,如圖 13所示

圖 13
產生一個Graphic,命名為"fc",在它的編輯介面設計以下圖形,如圖
14所示

圖 14
再產生一個Graphic,命名為"expression",在它的編輯介面設計以下圖形,如圖
15所示

圖 15
產生一個MovieClip,命名為"face",在它的編輯介面設計以下三個圖層
在"fc" 圖層,打開Library把"fc"拖曳到畫面上來,時間設為10格Frame
在"nose"圖層,畫一個豬鼻子及外框線,時間設為10格Frame
在"expression" 圖層,打開Library把"expression"拖曳到畫面上來,時間設為10格Frame,如圖
16所示

圖 16
點選畫面上的"fc",做一段動畫,在Frame6變成橙色,在Frame10變成紅色
點選畫面上的"expression",做一段動畫,在Frame10變成憤怒的表情,如圖
17所示

圖 17
產生一個空的MovieClip,命名為"Game
Action"
再打開記事本,寫下以下程式碼,將該檔案存檔,命名為
"shoot",副檔名請用 .as,存在batman的資料夾中
// 檔名: shoot.as
// 作者: Chi-Ren Hwang
// 版權: 軟體大學
onClipEvent(load){
an = 6;
hn = 0;
_root.hits = "命中: " + hn;
Mouse.hide();
pause = 2000;
targetPerLevel = 4;
targetLeft = 0;
levelWait = getTimer() + pause;
miss = 0;
shoot = new Sound();
shoot.attachSound("shoot");
popup = new Sound();
popup.attachSound("popup");
reload = new Sound();
reload.attachSound("reload");
_root.pig.gotoAndStop(1);
}
onClipEvent(enterFrame){
var i;
var temp;
_root.crosshair._x = _root._xmouse;
_root.crosshair._y = _root._ymouse;
if(targetLeft == 0 && getTimer() > levelWait){
for(i = 0; i <
targetPerLevel; i++){
while(true){
temp = int(Math.random()
* 16);
if(_root["target" + temp]._currentFrame == 1){
_root["target"
+ temp].gotoAndPlay(5);
targetLeft++;
break;
}
}
}
popup.start();
levelWait = getTimer() + 3000 + int(Math.random() * 4) * 1000;
targetPerLevel = int(Math.random() * 5) + 2;
}
_root.pig.gotoAndStop(int(miss/2));
if(miss > 20){
_root.gotoAndStop(3);
Mouse.show()
}
for(i=0; i < 6; i++){
if(i < an) _root["b"
+ i]._visible = true;
else _root["b" + i]._visible = false;
}
}
onClipEvent(mouseDown){
var i;
var x = _root._xmouse;
var y = _root._ymouse;
if(_root.reload.hitTest(x, y, false)){
reload.start();
an = 6;
}else{
if(an == 0) return;
shoot.start();
_root.crosshair.gotoAndStop(2);
an--;
}
for(i = 0; i < 16; i++){
if(_root["target"
+ i]._currentFrame > 4){
if(_root["target"
+ i].hitTest(x, y, true)){
_root["target"
+ i].gotoAndPlay(2);
hn++;
targetLeft--;
}
}
}
_root.hits = "命中: " + hn;
}
onClipEvent(mouseUp){
_root.crosshair.gotoAndStop(1);
}
|
產生一個MovieClip,命名為"reload",在它的編輯介面設計以下內容,如圖
18 所示
圖
18
回到Flash的主場景Scene1,產生以下的圖層,在"Frame
Action"圖層的Frame1設 stop();的程式碼,並且在畫面鍵入遊戲名稱,遊戲方式及設計一個"開始"的按鈕,如圖
19所示
圖 19
點選畫面的"開始"按鈕,設以下的程式碼,如圖
20所示
圖
20
在"Frame
Action"圖層的Frame2設 stop();的程式碼
在"Face"圖層,在Frame2插入空白的Blank KeyFrame,打開Library,把"face"拖曳到畫面上,並且給予Instance名稱為"pig"
在"Game Clip"圖層,在Frame2插入空白的Blank KeyFrame,打開Library,把"Game
Action"拖曳到畫面上,並且給予Instance名稱為"gameAction"
在"CrossHair"圖層,在Frame2插入空白的Blank KeyFrame,打開Library,把"CrossHair"拖曳到畫面上,並且給予Instance名稱為"crosshair"
在"Dynamic Text"圖層,在Frame2插入空白的Blank KeyFrame,在畫面右上方上產生一個動態文字,並且在Text
Options視窗的Variable欄位給予名稱為"hits",時間為Frame2至Frame3
在"bullets"圖層,在Frame2插入空白的Blank KeyFrame,打開Library,把"bullet"拖曳到畫面上,一共拖曳5個分身進來,分別給予Instance名稱命名為"b0"'、"b1"'、"b2"'、"b3"'、"b4"'、"b5"'
在"reload"圖層,在Frame2插入空白的Blank KeyFrame,打開Library,把"reload"拖曳到畫面上,並且給予Instance名稱為"reload"
在"Targets"圖層,在Frame2插入空白的Blank KeyFrame,打開Library,把"Target"拖曳到畫面上,一共拖曳15個分身進來,分別給予Instance名稱命名為"target0"'、"target1"'、"target2"'、....."target13"'、"target14"'、"target15"'
在"Background"圖層,在Frame2插入空白的Blank KeyFrame,畫幾條線造成空間的視覺效果,如圖
21所示

圖 21
請點選舞台上的"gameaction",設以下之程式碼,如圖
22所示

圖 22
在"Frame Action"圖層的Frame3,設以下程式碼,並且在畫面上設計遊戲結束的訊息文字,及設一個再玩一次的按鈕,如圖
23所示

圖 23
點選再玩一次的按鈕,設以下程式碼,如圖 24所示

圖 24
大功告成,請測試
《下載原始檔》
|