簡單的JS鴻蒙小游戲—飛行棋之頁面構(gòu)建
??想了解更多關(guān)于開源的內(nèi)容,請訪問:??
前言
飛行棋大家應(yīng)該都玩過吧,紅、綠、黃、藍(lán)四名玩家輪流擲骰子移動棋子,爭先到達(dá)終點,期間還要提防己方棋子不被擊落。今天就先帶大家學(xué)習(xí)下如何完成飛行棋游戲的簡單布局。
項目結(jié)構(gòu)
頁面構(gòu)建
游戲的布局并不復(fù)雜,分為左邊的飛行記錄,中間的棋盤,右邊的骰子、按鈕操作區(qū),還有游戲結(jié)束時的排行榜,共四部分。
- 左側(cè)飛行記錄:也即各個陣營的當(dāng)前戰(zhàn)績統(tǒng)計,除了與游戲勝利直接相關(guān)的抵達(dá)終點的棋子數(shù),還記錄了各方擊落敵機(jī)的數(shù)量,這也是游戲的趣味之一。
- 中間棋盤:背景圖片為飛行棋棋盤,其上是4×4=16枚棋子,棋子的位置在游戲過程中是動態(tài)變化的,所以使用絕對定位將某一棋格的坐標(biāo)賦值給棋子的left和top屬性。在對應(yīng)的區(qū)域棋子的朝向也會變化,否則棋子始終朝一個方向有些呆板。另外,棋子能否移動與擲出的骰子點數(shù)和飛機(jī)狀態(tài)有關(guān),disabled屬性便是用于控制該棋子是否可以交互移動。
- 右側(cè)操作區(qū):文本提示當(dāng)前回合輪到哪個陣營,點擊骰子隨機(jī)擲出1~6,還有重新開始按鈕,為避免誤觸設(shè)置其觸發(fā)事件為長按事件。
- 排行榜:默認(rèn)隱藏,當(dāng)游戲結(jié)束時顯示各陣營名次先后及用時。
走棋準(zhǔn)備
我們需要另外新建一個js文件作為棋盤的地圖,記錄每一個棋格的序號、坐標(biāo)、角度、顏色等屬性。文件格式如下:
- 序號index對應(yīng)的棋格下標(biāo),用于查找棋格;
- 坐標(biāo)的x和y分別賦值給行走到該棋格的棋子的left和top屬性;
- angle用于設(shè)置該棋格上的棋子的朝向角度;
- color記錄棋格顏色,當(dāng)棋子行走到同色的棋格時會觸發(fā)位移事件;
- 棋子數(shù)組chess[]則是用來記錄當(dāng)前回合該棋格上有哪些棋子。若是同色的棋子則數(shù)組長度加一;若是異色的則觸發(fā)踩棋事件,將原數(shù)組中的元素清空重置,寫入新棋子。
由于各個陣營棋子的走棋路線是不同的,所以需要先設(shè)定好各自對應(yīng)的航線,利用上面設(shè)置好的棋格下標(biāo),分別設(shè)定四條路線。
未完待續(xù)
至此,飛行棋小游戲的頁面布局就準(zhǔn)備完成了,關(guān)鍵游戲邏輯待下一篇講解。