1. 程式人生 > >外星人大戰-------------------------遊戲開發前四節總結思路

外星人大戰-------------------------遊戲開發前四節總結思路

前面已經完成遊戲的大概框架,先來總結一下:

現在遊戲已經實現了飛船能左右移動,能發射子彈,外星人可以左右往下移動,子彈可以擊殺外星人,飛船與外星人相撞後重新開始新遊戲或者外星人到達螢幕底部也開始新遊戲,最多可以重來3次。

現有7個部分:主程式、設定類、飛船類、子彈類、外星人類、遊戲統計資訊類與功能模組

設定類:首先設定螢幕的高寬與背景顏色、再是飛船的移動速度與飛船數量、設定子彈的高寬與背景顏色還有子彈的移動速度與允許發射的子彈數量、最後再是外星人的移動速度與下降速度還有表示是左移還是右移的變數。

飛船類:首先因為飛船顯示需要在螢幕上還需要設定類的引數,所以接受兩個形參,第一開始載入圖片,然後獲得圖片飛船的矩形。在獲得螢幕的矩形。再設定飛船的初始位置再螢幕的中央與底部。第二考慮到移動的方向,設定移動標誌,設定左右移動的方法,如果左邊的移動標誌為真和飛船矩形的左邊是大於0(也就是在在螢幕顯示的畫面裡),就左移,同理右移,只不過右邊需要右移標誌為真以及飛船矩形的右邊小於螢幕的右邊,這裡要考慮到移動可以是小數點,所以設定一個變數儲存小數值,當然最後還要等於回去飛船的x的座標。第三,設定一箇中間放置方法,對於在遊戲裡重新開始的時候,飛船可以回到中間底部,因為飛船左右移動不上下移動,修改的話只需要設定為在螢幕中間。第四,設定傳輸達方法,要把圖片載入螢幕上顯示出來。

子彈類:首先子彈繼承Sprite類,子彈在螢幕,飛船上以及設定累的引數,所以需要三個形參;第一,建立表示子彈的矩形,設定的位置在飛船的中央頂部位置,第二設定子彈的移動與更新子彈移動的座標,與飛船一樣,考慮到小數點,第三將子彈繪製在螢幕上

外星人類:首先繼承Sprite類,外星人只需要設定,螢幕兩個形參。第一載入圖片獲得外星人的矩形,設定外星人的初始位置;第二設定外星人移動與更新位置,第三,檢查邊距;第四,繪製外星人在螢幕上。

遊戲統計資訊類:統計類需要記錄在遊戲裡的飛船變化的數量,以及遊戲活動的標誌

功能模組:針對於鍵盤事件:先建立一個檢查按下鍵盤事件的函式,用於檢測按下的右箭頭,就改變飛船類的右移標識為真,飛船就能右移,如果是左箭頭,就改變飛船類的左移標識為真,飛船就能左移;如果是空格鍵,就呼叫子彈開火函式,發射子彈;再建立一個檢查鬆開鍵盤的事件函式,用於檢測如果鬆開的是右鍵盤,就改變飛船類的右移標識為假,飛船就不會右移。同理,不左移也是這樣,最後設定一個檢查鍵盤事件的函式,檢測是按下鍵盤的時候就呼叫檢查按下鍵盤事件的函式,檢測是鬆開鍵盤的時候,就呼叫鬆開鍵盤的事件函式,檢測滑鼠退出;

                     針對於飛船子彈:1.建立一個子彈開火函式,只要螢幕上的子彈數小於設定的子彈數,就新建子彈,加入子彈編組裡。2.再建立一個更新子彈位置和刪除已經消失的子彈,首先呼叫子彈類裡的更新方法,獲得子彈的位置左邊,在檢測子彈底部座標是否小於0(小於0 表示在顯示的螢幕之外),小於0 就刪除這顆子彈,再呼叫檢查外星人和子彈相撞的函式。

                   針對於外星人:1.建立一個建立外星人的函式,呼叫外星人類,建立一個外星人,獲得矩形的寬度,在設定這個外星人的位置座標=寬度+2*外星人寬度*外星人的數量,再 新增到外星人的編組裡。

                                            2.建立計算每行可以放入的外星人數量的函式,返回每行可以放入的外星人的數值。

                                            3.建立一個螢幕可以放入多少行的外星人函式,返回行的值、

                                            4.建立一個建立外星人群的函式,先呼叫外星人類,建立一個外星人,再 呼叫計算每行可以放入的外星人數量的函式,獲得值;再呼叫一個螢幕可以放入多少行的外星人函式,返回行值;再建立迴圈,呼叫建立外星人的函式。

                                            5.建立外星人是否到達螢幕的底端的函式,首先獲取螢幕的矩形,遍歷外星人。檢查底端,如果有一個到達底部,就會呼叫飛船相撞的函式,因為響應的行為是一樣的;

                                              6.建立外星人到達左右邊緣的行為響應:遍歷外星人,如果檢查外星人到達邊緣會返回真值,就呼叫下移外星人群的函式

                                             7.建立下移外星人的函式:遍歷外星人,y左邊位置變化,設定左移右移等於左移右移*-1,確定方向

         針對相撞情況:1.建立檢查子彈與外星人相撞的函式,呼叫sprite.groupcollide(),可以檢查子彈與外星人的位置重疊,然後刪除。再檢查外星人的數量,如果沒有了就清空子彈編組,再呼叫建立外星人群的函式;

                                    2建立更新外星人位置的函式,呼叫檢查外星人到達左右邊緣的行為響應函式,再呼叫外星人類設定外星人移動與更新位置。再呼叫外星人是否到達螢幕的底端的函式,再檢測外星人和飛船的相撞,如果相撞,呼叫飛船相撞的函式

                                  3.建立飛船相撞函式:檢查統計資訊類的飛船數,大於0,意味著還有飛船可以呼叫,然後這次相撞就減去1,清空子彈類和外星人類,再建立外星人群,把飛船放入中間,停頓一點時間。如果沒有大於0 ,意味著沒有飛船可以用了,所以就把遊戲活動標誌設為假值;

最後建立一個更新遊戲螢幕的函式,螢幕的背景顏色,子彈的繪製,飛船的傳輸,外星人的繪製

 

主程式:再主程式函式裡;建立設定類的例項,建立螢幕,建立統計例項。建立飛船例項,建立子彈和外星人的編組,建立外星人群。再開始遊戲迴圈,先檢查鍵盤滑鼠事件,再看遊戲活動的標誌,為真,更新飛船,更新子彈,更新外星人。最後更新螢幕。