add example scripts

This commit is contained in:
2019-11-16 07:10:32 +07:00
parent 0122de0f28
commit dc653a3c7f
4 changed files with 126 additions and 6 deletions

View File

@@ -1,6 +1,9 @@
{
"components" : {
"scene" : {}
"scene" : {},
"behaviour" : {
"script" : "../scripts/sample_07/sample_07.lua"
}
},
"children" : [{
"prototype" : "../prefabs/camera_prefab.json"
@@ -10,20 +13,26 @@
"actor" : {
"translation" : [0,0,0],
"scale" : 20
},
"behaviour" : {
"script" : "../scripts/sample_07/gnome.lua"
}
}
}, {
},{
"prototype" : "../prefabs/label_sdf_prefab.json",
"components" : {
"label" : {
"text" : "Hello World!",
"valign" : "center",
"text" : "FPS: ",
"halign" : "left",
"outline_width" : 0.5,
"outline_color" : [0,0,0,255]
},
"actor" : {
"translation" : [0.5,-180.5,0],
"scale" : 2
"translation" : [-315,-235,0],
"scale" : 1
},
"behaviour" : {
"script" : "../scripts/sample_07/fps_label.lua"
}
}
}]

View File

@@ -0,0 +1,40 @@
-- -----------------------------------------------------------------------------
--
-- private
--
-- -----------------------------------------------------------------------------
---@class fps_label_meta
---@field last_fps number
---@param meta fps_label_meta
---@param go gobject
local function update_label_text(meta, go)
local curr_fps = the_engine.frame_rate
if meta.last_fps ~= curr_fps then
meta.last_fps = curr_fps
go.label.text = "FPS: " .. curr_fps
end
end
-- -----------------------------------------------------------------------------
--
-- meta
--
-- -----------------------------------------------------------------------------
local M = {}
---@param meta fps_label_meta
---@param go gobject
function M.on_start(meta, go)
meta.last_fps = -1
end
---@param meta fps_label_meta
---@param go gobject
function M.on_update(meta, go)
update_label_text(meta, go)
end
return M

View File

@@ -0,0 +1,49 @@
-- -----------------------------------------------------------------------------
--
-- private
--
-- -----------------------------------------------------------------------------
---@class gnome_meta
---@field life_time number
---@param meta gnome_meta
---@param go gobject
local function update_life_time(meta, go)
meta.life_time = meta.life_time - the_engine.delta_time
if meta.life_time <= 0 then
go:destroy()
end
end
---@param meta gnome_meta
---@param go gobject
local function update_gnome_rotation(meta, go)
go.actor.node.rotation = q4f.make_from_euler_angles(
radf.new(),
radf.new(the_engine.time),
radf.new())
end
-- -----------------------------------------------------------------------------
--
-- meta
--
-- -----------------------------------------------------------------------------
local M = {}
---@param meta gnome_meta
---@param go gobject
function M.on_start(meta, go)
meta.life_time = 5
end
---@param meta gnome_meta
---@param go gobject
function M.on_update(meta, go)
update_life_time(meta, go)
update_gnome_rotation(meta, go)
end
return M

View File

@@ -0,0 +1,22 @@
local M = {}
---@param go gobject
function M:on_start(go)
the_debug:trace("sample_07: on_start")
end
---@param go gobject
function M:on_update(go)
end
---@param go gobject
---@param type string
---@param event any
function M:on_event(go, type, event)
end
---@param go gobject
function M:on_shutdown(go)
end
return M