iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
0
自我挑戰組

卡牌遊戲開發日記v2020系列 第 8

Day8 場面資訊封裝

//將遊戲場面的全部資料包起來,透過統一的方法去改變內部狀態

根據基礎規則,場面上的玩家會有以下資料:

  • 牌庫
  • 手牌
  • 棄牌
  • 生命值
  • 防護罩
  • 上回合行動
  • 蓋牌資訊(非公開)

當遊戲變成四人遊戲時,生命值會變成同陣營共用。
當遊戲增加星辰、聖獸規則時,星辰為同陣營共用、場地環境為全體玩家共用。

在遊戲內的行動對象通常都是單一玩家,所以為了區分全體玩家、陣營、個人而增加前綴或是分層,會讓資料階層增加,不夠扁平化。所以打算讓每個玩家照樣擁有全部的資訊,不按照陣營、全體玩家作分層。共用資訊在更新時會一併更新所有相同陣營或全體玩家。

或是將資訊按照全體玩家、陣營、個別玩家作資料分層,但是以玩家ID取得陣營共用資訊時,能夠把玩家ID轉換成對應的陣營ID。

再來是之前實作發生一個問題,我封裝了玩家狀態物件,但是把更新函數寫成了物件方法 playStat.hurt(n) 但應該是要採用 hurt(playerID, n) 才對。

//今天花太多時間弄另外一個系列,這邊分到的時間不多,先寫概念,明天實作


上一篇
Day7 改善傷害的處理過程
下一篇
Day9 再談資料封裝(介面)
系列文
卡牌遊戲開發日記v202030

尚未有邦友留言

立即登入留言