因爲它現在是我的Board對象,它包含一個8x8 2維數組(網格,我稱之爲),並且片段用ints 1/2,我用一個按位操作來標記一塊作爲國王。用於在Canvas中實現的跳棋棋盤遊戲的合適模型,其中包含動畫
我還有一個Checkers對象,用於處理棋盤的渲染和用戶在畫布上的點擊等。Checkers對象有一個Draw方法,它只是遍歷Board對象上的網格,以創建一個圖形表示董事會。因此,每次調用Draw()時,都會重新繪製板子,並重新計算棋子位置。
現在我想添加動畫。我能夠實現這一點的一種方式是跟蹤最近的移動(源和目標XY座標),然後以設定的間隔運行Draw()
例程,並且檢查例程Draw()
以查看座標即將繪製的棋子與前一個棋子的目標變量中記錄的座標相同,並相應地調整棋子的位置。
雖然這個工程,我覺得它是一個混亂。
我嘗試過的另一種模式是使用物體代替整數,然後我可以在該物體上記錄像素X Y座標,並在每次移動(或在動畫循環中)後更新它們。我也發現這很麻煩,並且不喜歡我的棋盤對象現在被綁定到渲染邏輯中的方式。
任何有這方面經驗的人都會提出一種更好的做事方式嗎?
值得注意的是,我在服務器端(NodeJS)使用了相同的Board類,所以理想情況下我希望在客戶端和服務器上保持Board類相同,以確保客戶端的動作和驗證永遠不會被服務器拒絕。