lua:switch
概要
- LuaにはSwitch構文がない。
- だが、TIC-80だと必須となるメイン関数(Callback)が存在しており、これを利用する必要がある。
- つまりツリー構造としなければならないが、毎回if分岐を使うのも面倒。
- そこで、switch構文っぽく実装ができれば記述を大きくしなくて済む。また改造も局所的で済む。
- 参考資料
TIC-80での実装
- 元実装とそれほど変わりない
local StateId = {
Idle = 1,
Run = 2,
Attack = 3,
}
local state=2
function SwitchCaseIdle(arg)
return 1+arg*10
end
function SwitchCaseRun(arg)
return 2+arg*10
end
function SwitchCaseAttack(arg)
return 3+arg*10
end
-- switchぽい関数分岐
function SwitchMain(stateId, arg)
local switchCase={}
switchCase[StateId.Idle] = SwitchCaseIdle
switchCase[StateId.Run] = SwitchCaseRun
switchCase[StateId.Attack] = SwitchCaseAttack
switchCase[stateId](arg)
end
function TIC() print SwitchMain(state,1) end
lua/switch.txt · 最終更新: by machiaworx
