『壹』 如何自己編程小游戲
使用類編程思路清晰,可讀性強,本例通過編寫貪吃蛇展示類的基本應用。最終效果如下:
網頁教學網:本文中全部的Fla源碼在文章最後全部打包供大家下載研究學習使用。
看不懂鏈接名等內容的,可以看我的另一個教程「 簡單射擊游戲教程 」,或許有所幫助。全部源文件如下:貪吃蛇—類編程.rar
第一步:「蛇」類初始化
新建fla文件,同目錄下新建as文件,取名Snake.as,類名必須和文件名相同。fla文件中新建蛇節點元件,鏈接名為node,第一幀和類中寫入相應代碼。
第一步:「蛇」類初始化.rar
第二步:蛇的移動
寫個move方法,在init方法中設置時間間隔。
第二步:蛇的移動.rar
第三步: 鍵盤改變移動方向
寫個changeDirection方法,在主場景第一幀用鍵盤事件調用該方法,控制蛇的方向。
第三步:鍵盤改變移動方向.rar
第四步:增加節點
寫個addNode方法,新節點產生在蛇尾即nodes[length - 1]的位置上,暫時加個按鈕調用addNode方法,觀察結果。
第四步:增加節點.rar
第五步:碰撞判斷
修改move方法,假如頭節點與蛇身其他部位重合,clearInterval刪除move的定時調用。同時changeDirection也要加多個判斷,不能讓頭節點和第二節點重合,加多這個判斷是為了防止一個Bug的產生,一些貪吃蛇程序並沒有注意到這點。這個Bug產生原因如下:
假設蛇向右移動,是不能進行向左改變方向,但由於move方法是定時調用的,比如每300毫秒一次,所以在這300毫秒內可能進行了多次快速按鍵。第一次按向下,蛇的xDirection和yDirection改變為向下,但move的執行時間沒到,又緊接著按左,因為蛇方向在數據上已經改變,所以捕捉不到不能向左的判斷,快速按鍵造成蛇反向移動的Bug就產生了,加個上述判斷就好了。
第五步:碰撞判斷.rar
第六步:食物類編寫
新建Food類,注意用extends繼承MovieClip,這樣元件才能鏈接它,在主場景中新建食物元件,鏈接Food類,實例名為food,拖入場景。在Food中寫入appear和disappear方法,做兩個臨時按鍵調用它們觀察效果。
第六步:食物類編寫.rar
最終完成:吃食物
Food中定時調用appear,並通過setSnake引入Snake實例snake,判斷蛇身坐標不讓新食物與之重合。Snake中通過setFood引入Food實例food,判斷是否吃到食物,做出相應處理,如食物消失,增加蛇節點,改變setSnake。場景第一幀也要setSnake引入蛇頭。
以後還要增加新功能,如阻礙物設置等,都可以通過改變as文件完成。雖然類編程比直接控制影片較為繁瑣,但由於使用了面向對象,以後再對程序進行完善時都可依照對象行為思考,每個方法就是對象的每個行為,什麼行為需要改變就找對應的方法修改,思路清晰。