summaryrefslogtreecommitdiff
path: root/dyl.lua
diff options
context:
space:
mode:
authorElizabeth Alexander Hunt <me@liz.coffee>2026-04-22 15:58:41 -0700
committerElizabeth Alexander Hunt <me@liz.coffee>2026-04-22 15:58:41 -0700
commit078eca583eec21d317e931c84db8f084bef4305d (patch)
tree76b303cdda70a87a5febaf57726d4f8779a387a3 /dyl.lua
parent3555b9ff88c3872c8f2dd8a8ab02382e2a7d0cb2 (diff)
downloaddyl8-078eca583eec21d317e931c84db8f084bef4305d.tar.gz
dyl8-078eca583eec21d317e931c84db8f084bef4305d.zip
Snapshot
Diffstat (limited to 'dyl.lua')
-rw-r--r--dyl.lua69
1 files changed, 69 insertions, 0 deletions
diff --git a/dyl.lua b/dyl.lua
new file mode 100644
index 0000000..f7dce11
--- /dev/null
+++ b/dyl.lua
@@ -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