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