123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- local lookup = require "example.easing_functions"
- local PREVIOUS = -1; local NEXT = 1
- local function change_index_by(index, delta)
- index = (index + delta) % #lookup
- if index < 1 then
- index = #lookup
- end
- return index
- end
- local function restart_demo_animations(easing)
- msg.post("position_demo", "restart", { easing = easing.value })
- msg.post("rotation_demo", "restart", { easing = easing.value })
- msg.post("scale_demo", "restart", { easing = easing.value })
- end
- local function update_gui(self)
- msg.post("/hud#gui", "demo_changed", {
- index = self.index,
- total = #lookup,
- easing_name = self.easing.name
- })
- end
- local function change_easing_demo(self, index_change)
- self.index = change_index_by(self.index, index_change)
- self.easing = lookup.get_by_index(self.index)
- restart_demo_animations(self.easing)
- update_gui(self)
- end
- function init(self)
- msg.post(".", "acquire_input_focus")
- self.index = 1
- self.easing = lookup.get_by_index(self.index)
- restart_demo_animations(self.easing)
- update_gui(self)
- end
- function final(self)
- msg.post(".", "release_input_focus")
- end
- function on_message(self, message_id, message, sender)
- if message_id == hash("prev_easing_demo") then
- change_easing_demo(self, PREVIOUS)
- elseif message_id == hash("next_easing_demo") then
- change_easing_demo(self, NEXT)
- end
- end
- function on_input(self, action_id, action)
- if action_id == hash("key_left") and action.pressed then
- change_easing_demo(self, PREVIOUS)
- elseif action_id == hash("key_right") and action.pressed then
- change_easing_demo(self, NEXT)
- end
- end
|