diff options
Diffstat (limited to 'dyl.lua')
| -rw-r--r-- | dyl.lua | 69 |
1 files changed, 69 insertions, 0 deletions
@@ -0,0 +1,69 @@ +sword = entity() + :b_type(Entities.Sword) + :b_render_order(1) + :b_collidable() + :b_add_state("equipped", { + animation={ + pos_y = { sequence = { 82 }, dt = 1, reflect = vec2(false, true) }, + neg_y = { sequence = { 82 }, dt = 1 }, + pos_x = { sequence = { 82 }, dt = 1 }, + neg_x = { sequence = { 82 }, dt = 1, reflect = vec2(true, false) } + } + }) + +player = entity() + :b_type(Entities.Player) + :b_render_order(0) + :b_collidable() + :b_position(vec2(30,30)) + :b_sprite_position(vec2(30,30)) + :b_add_state(States.Idle, { + animation = { + pos_y = { sequence = { 3, 19 }, dt = 1 }, + neg_y = { sequence = { 6, 22 }, dt = 1 }, + pos_x = { sequence = { 0, 1 }, dt = 1 }, + neg_x = { sequence = { 0, 1 }, dt = 1, reflect = vec2(true, false) } + } + }) + :b_add_state(States.Walk, { + animation = { + pos_x = { seq = { 2, 0 }, dt = 0.20 }, + neg_x = { seq = { 2, 0 }, dt = 0.20, reflect = vec2(true, false) }, + pos_y = { seq = { 4, 5 }, dt = 0.20 }, + neg_y = { seq = { 7, 8 }, dt = 0.20 } + } + }) + :b_state("idle") + :b_equipped({ sword }) + +_walk_speed = 35 -- powerup increase? +function handle_input() + dpos = vec2(0, 0) + if btn(0) then dpos.x -= 1 end + if btn(1) then dpos.x += 1 end + if btn(3) then dpos.y += 1 end + if btn(2) then dpos.y -= 1 end + + player.velocity = dpos:normal() * _walk_speed +end + +function _init() +end + +step_t = time() +function _update60() + cls(0) -- clear here in case we want to print to screen outside of _draw + + old_step = step_t + step_t = time() + step_dt = step_t - old_step + + handle_input() + foreach(qsort(World, function(a, b) return a.equipped != nil end), function (e) e:update(step_dt) end) + run_collisions() +end + +function _draw() + -- foreach(qsort(World, function (a, b) return a.render_order < b.render_order end), function (e) e:render() end) + foreach(World, function (e) e:render() end) +end
\ No newline at end of file |
