【Flutter 跨平台 App 程式設計入門】#3 快艇骰子Yahtzee

第三次的作業是要做出快艇骰子小遊戲,這次真的是燒掉我的大腦,且目前功能都不完全,預計之後把所有的功能補上。

預覽圖

使用到之技術

  1. GestureDetector

這段程式碼主要是判斷如果玩家點了某個格子後會觸發的事件,除了格子會變色外,還需要回傳該格子是目前被選擇的。

2. VoidCallback

這裡的VoidCallback主要是處裡重新擲骰子後會發生的事件,當使用者決定繼續擲骰子時,需要將畫面上的14個格子重整。

3. ElevatedButton

這裡是當play button點擊時會觸發的事件,除了要確定最後選擇的分數格子外,也需要結束該回合,但由於自身能力不足,目前只能選擇格子但格子無法展示分數,且也無法繼續下一回合,只能將骰子及點擊特效reset。

4. StatefulWidget

StatefulWidget可以說是這次作業最麻煩的部分,除了需要搞懂VoidCallback,setState的部分也需要搞清楚。題外話,當時在做分數格的時候,由於不管怎麼嘗試都無法將兩個GridView.builder並行,永遠都會超出畫面,因此只好將花色、我方、對方的分數格子給算在一個Grid裡面,否則會呈現不出來,這裡花了將近1天才做好。

心得

由於大部分用的都是新技術,包含像是StatefulWidget,或是VoidCallback,當時在寫的時候腦袋就快燒壞了,開放封閉原則也沒做到,遊戲方面的數分數及繼續下一回合等也沒做到,因此之後會再想辦法寫完並寫得更漂亮。

--

--