AS 實(shí)戰(zhàn)篇
這次我們要進(jìn)入實(shí)戰(zhàn),我要教你們做一個很簡單的游戲,下面的每句代碼我都會加上注釋,如果你看過上面的教程,我想要全部理解應(yīng)該不會困難。
現(xiàn)在讓我們開始吧。這個游戲是我初學(xué)的時候按教程做的一個游戲,所以印象比較深刻。這個游戲叫做蝸牛賽跑,流程是這樣的:畫面上有若干條賽道,每條賽道上面有一只蝸牛,每只蝸牛爬行的速度不一樣。游戲開始了,你要猜猜哪只蝸牛先跑到終點(diǎn)。如果你猜對了,You Win,否則,Game Over。
第1步,我們先設(shè)置場景的大小 600*400 px ,運(yùn)行速度為 48幀/秒 這個是我個人喜好速度。
第2步,我們把默認(rèn)的層名稱改成Bkground,并且畫上賽道、起跑線和終點(diǎn)線,我這里是4條賽道
第3步,新建一個層,層命名成WN_Layer,然后畫一個會動的蝸牛放在這個層,F(xiàn)8定義成MC,MC命名成WN_MC。把蝸牛的尾巴放在整個MC的正中間,如果少了這步,蝸牛還沒到終點(diǎn)就結(jié)束了。然后復(fù)制3個一樣的蝸牛,在屬性欄里面調(diào)整一下顏色,使他們看起來有點(diǎn)區(qū)別。然后對齊放到各條賽道的起點(diǎn)位置。
第4步,新建一個層,命名成btn , 然后做一個按鈕,復(fù)制4個分別放在4個蝸牛的旁邊
第5步,記住蝸牛開始的X軸位置數(shù)據(jù),我這里是25,然后把一個蝸牛拖到終點(diǎn)看看它的X軸位置數(shù)據(jù)多少,然后記下來,為AS做準(zhǔn)備。我這里得到的是540。記得把它放回去哦~
第6步,新建一個層,命名為Actoins,用來寫AS的。這個層我們需要4個關(guān)鍵幀。我來講一下為什么。
我們需要一個幀來準(zhǔn)備開始游戲,也就是讓玩家猜的幀,是游戲一開始的蝸牛不動的畫面。這個就由第1幀來完成了。我們做的4個按鈕也就是要讓玩家去猜哪只蝸牛會贏。
當(dāng)游戲開始以后,玩家不能改變數(shù)據(jù)了,所以在烏龜爬的過程中,按鈕層沒有內(nèi)容。
第2個幀我們要讓每個蝸牛都爬一次,為什么只讓他們爬一次呢?因?yàn)闀r間軸的指針經(jīng)過這個關(guān)鍵幀的時候,只讓幀里面的AS執(zhí)行一次而已。為了讓蝸牛不斷地爬,我們需要重復(fù)的讓時間指針走過這個第2幀,所以我們第3幀的內(nèi)容就是要讓時間指針回到第2幀。
第3幀以后就是顯示結(jié)果的幀了,那我們新建一個層,命名show ,做第4跟第5兩個關(guān)鍵幀,在第4幀放一個勝利的字樣,在第5幀放一個失敗的字樣。 另外在游戲結(jié)束后,我們需要一個按鈕讓玩家再玩一次,所以,按鈕層的第 4到5 兩個幀需要一個按鈕。
布置完以后,整個層的結(jié)構(gòu)如圖(還沒有任何 AS):
現(xiàn)在我們有 4 個對象 : _root.wn1 , _root.wn2 , _root.wn3 , _root.wn4
下面我們一幀一幀來做:
Action 第1幀 _root.stop(); //停止時間軸 _root.truewinner = 0; _root.guesswinner = 0;
后面2句代碼定義了兩個變量truewinner,guesswinner在_root這條時間軸。變量是用來儲存數(shù)據(jù)的,可以自己定義。這里的truewinner,guesswinner分別表示 哪號蝸牛贏了 和 玩家猜的是哪號 。這里初始化了這兩個數(shù)據(jù)。
Action 第2幀 _root.wn1._x += random(10)/10+random(1); //蝸牛1號的X軸數(shù)據(jù)增加某一數(shù)值 _root.wn2._x += random(10)/10+random(1); //蝸牛2號的X軸數(shù)據(jù)增加某一數(shù)值 _root.wn3._x += random(10)/10+random(1); //蝸牛3號的X軸數(shù)據(jù)增加某一數(shù)值 _root.wn4._x += random(10)/10+random(1); //蝸牛4號的X軸數(shù)據(jù)增加某一數(shù)值
看過對象篇,這里理解起來不難吧? _x 表示對象蝸牛的屬性之一:X軸的位置。 += 表示自加 , 這樣理解 a=a+1 和 a+=1 是一樣的。表示自加1。 這里有個方法 , random() 這個方法用來獲得一個隨機(jī)的數(shù)字,如 random(10) 獲得 0-9 中間的任何一個數(shù)字。上面的表達(dá)式獲得一個從 0-1.9 的一個隨機(jī)數(shù)。
Action 第3幀
if (_root.wn1._x>540) { _root.truewinner = 1; } if (_root.wn2._x>540) { _root.truewinner = 2; } if (_root.wn3._x>540) { _root.truewinner = 3; } if (_root.wn4._x>540) { _root.truewinner = 4; }
//判斷哪只蝸牛到了,到了就改變truewinner的值,紀(jì)錄哪只蝸牛獲勝 if (_root.truewinner != 0) { if (_root.guesswinner == _root.truewinner) { _root.gotoAndStop(4); } else { _root.gotoAndStop(5); } } else { _root.gotoAndPlay(2); } /*-------------------------------------------- 判斷truewinner的值,如果被改變了,說明已經(jīng)有蝸牛到了 如果還沒有改變,說明蝸牛們還沒到。 如果沒到,就把_root的指針跳到第2幀,讓他們繼續(xù)跑,如果到了, 判斷玩家壓的那只和真正到的那只是不是一樣。如果猜對了,讓時間 指針跳停到第4幀,否則跳停到第5幀。 ---------------------------------------------*/
仔細(xì)理解一下流程,應(yīng)該不難 :)
接下來是按鈕上的AS:
第1幀的按鈕 on(release){ _root.play(); _root.guesswinner = 1; }
第一只蝸牛旁邊的按鈕上面的as。松開按鈕后,指針跳到第2幀,然后紀(jì)錄變量guesswinner為1(猜第1只)。
其它蝸牛旁邊的代碼類似,就是紀(jì)錄變量guesswinner值為相對應(yīng)的 2、3、4
最后一個按鈕,用來重玩的。 on(release){ _root.gotoAndStop(1); _root.wn1._x = 25;//蝸牛1號回起點(diǎn) _root.wn2._x = 25; _root.wn3._x = 25; _root.wn4._x = 25; }
全部看明白了吧?嗯,看看我做的
這里我就不給源文件了,大家自己動手做做,很有成就感的~ :) (完)
出處:藍(lán)色理想
責(zé)任編輯:qhwa
上一頁 土人系列AS入門教程--對象篇 下一頁
◎進(jìn)入論壇Flash專欄版塊參加討論
|