格子移動 - 依照不同能力/不同地形- 方向鍵或 touch/滑鼠點擊後上/下/左/右拖曳, 移動黑棋.
- 黑棋有3種能力: 可走, 可游, 可飛行. 點擊右方的"Walk ability", "Swim ability", "Fly ability"文字可開啟/關閉能力. 開啟呈現黑字, 關閉是灰字.
- 地形分3種
綠(草地): 可走, 可飛行.
藍(水): 可游, 可飛行.
黃(山): 可飛行.
簡單的說明
輸入與移動當鍵盤方向鍵按下, 或touch的上下左右拖曳時, 嘗試移動chess至上下左右格.
能否移動3種ability在tile與chess上分別用3個私有變數表示. 移動過程中, plugin會用"condition:get destination's solid"詢問"目標tile是否是solid" (概念上, 如果是solid則無法移動到目地). 判定是否是solid的方是很直覺, 只要把這3個ability的數值成對的抓出來做布林運算就好了.
整個過程, 裸露在event sheet上的只有
- 嘗試往上/下/左/右移動的命令
- 能否移動到某格的判定
埋在plugin裡的是
- 移動到哪格的計算
- 移動過程 (每個tick設定chess的顯示位置)
Plugin的使用是一種"填空格". plugin提出某個問題(某格是否是solid), 從event sheet裡回答(是/否). 至於判斷的邏輯就交由開發者決定. 藉此切割"可變"與"不變"的邏輯.
之前matching裡的"on get symbol"也是同樣概念.