我們已經(jīng)討論了大量有關(guān)游戲的技術(shù),包括圖形、計時器和聲音等。現(xiàn)在應(yīng)該把目前所學(xué)的知識綜合到一起,來制作一個真正的游戲。
在本章中,我們將全程演示如何制作一個名為GemDrops(寶石連連看)的示例游戲,這是一個功能完整的游戲(并且很好玩),它使用了我們前面所構(gòu)建好的游戲引擎。
8.1 設(shè)計游戲
在創(chuàng)建游戲之前,首先要在一個“設(shè)計概要”文檔中對游戲進(jìn)行規(guī)劃。它將解釋游戲的內(nèi)容、實現(xiàn)方式及其目標(biāo)。還要輔以一些模型屏幕截圖對游戲設(shè)計進(jìn)行演示。
如果您是獨自開發(fā),那么在游戲的實現(xiàn)過程中 應(yīng)該能夠流暢地執(zhí)行該計劃;如果您在一個團(tuán)隊中,那么在決定改動設(shè)計時就必須更加遵守規(guī)則,確保每個人都能理解這些變動,并從自己的角度出發(fā)進(jìn)行考慮。
當(dāng)您獨自進(jìn)行開發(fā)時,概要設(shè)計看似多余,但它仍然是一個非常有用的文檔:
● 它能幫您在投入大量時間編寫程序代碼之前發(fā)現(xiàn)可能存在的問題,從而減小很多由于返工而造成的浪費。
● 它能幫您記錄要實現(xiàn)的功能列表,在開發(fā)游戲時,當(dāng)需要實現(xiàn)一系列游戲功能時,它就可以發(fā)揮作用。
● 它能幫您激發(fā)靈感來設(shè)計新功能和觸發(fā)新的想法,避免陷入紛繁復(fù)雜的實際情況
當(dāng)中。
● 它能幫您更快更好地將游戲的理念傳達(dá)給其他人。
接下來我們就對“GemDrops”游戲進(jìn)行概要設(shè)計。
8.1.1 創(chuàng)建GemDrops的概要設(shè)計
GemDrops游戲中包含了多種顏色的寶石。寶石在玩家的控制下成對的從游戲區(qū)域的頂部往下降落。玩家可以左右移動寶石,也可以旋轉(zhuǎn)寶石以調(diào)整排列順序,還可以使寶石加速下落來使游戲更加流暢。
玩家控制中的寶石不能移動到與已有的寶石發(fā)生重疊的位置。當(dāng)玩家試圖將一對寶石移動到某個已經(jīng)存在了寶石的位置上時,該移動將不被允許,且被控制的寶石保持在原位。同樣,當(dāng)寶石落在已有寶石的上面時是不允許旋轉(zhuǎn)的。
玩家控制中的寶石如果落在某個已經(jīng)存在的寶石上,該寶石就被認(rèn)為是落地了,玩家將失去對這一對寶石的控制。
寶石不會漂浮在游戲區(qū)域的中間,只要有可能它們就會往下落。如果寶石在降落過程中是水平排列的,當(dāng)其中一個寶石落在某個已經(jīng)存在的寶石的上方,而與它配對的另一個寶石下方還有空間時,那么后者將會繼續(xù)降落(這時玩家不能對它進(jìn)行控制),直到其降落到某個已存在的寶石的上方或是到達(dá)游戲區(qū)域的底邊。
當(dāng)游戲區(qū)域中有5個及5個以上相同顏色的寶石連接在一起時(垂直連接或者水平連接,但斜線連接無效),那么這一組寶石就會從游戲區(qū)域中消去。這些寶石不必以直線的方式連接,只需要相互連接即可。這時玩家就會得分,分?jǐn)?shù)的多少是根據(jù)連接在一起的寶石的數(shù)量決定的。每連接一個寶石就會得10分。因此,消去一組寶石至少會得50分。