アイテム閲覧の画面構成をノートに書きだしたので、実装を開始した。
- どの種類のアイテムを閲覧するのかを選ぶタブメニュー
- アイテムがリスト表示されたスワイプできる領域
- アイテムをタップしたときの詳細表示
から構成される予定。
これらの動作は、状態遷移で表現せずにボタンが押された時のコールバックで処理してしまおうと思っている。
とりあえず、タブメニューまでが実装できた。
↓ソースコード
https://bitbucket.org/satofumi/dwarf_weapon_shop/src/e1c0225cad59e28bfa8f87fb6399bbf6a2e308db/src/items.lua?at=default
タブメニューの個々の要素はボタンで構成されているので、下記コードをボタンが押された時のコールバックとして登録することで、メニューの排他まわりを実現している。
-- 押下時のコールバックを登録する local function decided_callback(button_self) -- 押下を排他にする for _, button in pairs(button_) do if button_self ~= button then button:set_normal() end end -- スクロールエリアを切り替える -- !!! end
実装に思っていたよりも時間がかかってしまうのは、ぶっちゃけ辛いけど頑張ろうと思う。