aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriamcheeseman <[email protected]>2026-03-08 18:32:14 -0400
committeriamcheeseman <[email protected]>2026-03-08 18:32:14 -0400
commit3950a3b2fa78b7a928c0437d98105d79c13a922f (patch)
tree95ad31e0f6708be8c9a4148619dd895ccedf43be
parentb744faa2e42ed37459fe3edb69c1149146233e5b (diff)
add util functions; add resources
-rw-r--r--main.lua4
-rw-r--r--res/img/bullet.pngbin0 -> 114 bytes
-rw-r--r--res/img/carrabasset_big_trunk.pngbin0 -> 389 bytes
-rw-r--r--res/img/carrabasset_vines_0.pngbin0 -> 715 bytes
-rw-r--r--res/img/carrabasset_vines_1.pngbin0 -> 512 bytes
-rw-r--r--res/img/carrabasset_vines_2.pngbin0 -> 631 bytes
-rw-r--r--res/img/carrabassett_big_bush_0.pngbin0 -> 645 bytes
-rw-r--r--res/img/carrabassett_props.pngbin0 -> 5165 bytes
-rw-r--r--res/img/carrabassett_small_bush_0.pngbin0 -> 435 bytes
-rw-r--r--res/img/carrabassett_small_trunk.pngbin0 -> 284 bytes
-rw-r--r--res/img/dash_pickup.pngbin0 -> 133 bytes
-rw-r--r--res/img/double_jump_pickup.pngbin0 -> 134 bytes
-rw-r--r--res/img/hugbug.asebin0 -> 1369 bytes
-rw-r--r--res/img/lamp_post_0.pngbin0 -> 382 bytes
-rw-r--r--res/img/muntik.asebin0 -> 908 bytes
-rw-r--r--res/img/pistol.pngbin0 -> 122 bytes
-rw-r--r--res/img/player.asebin0 -> 5279 bytes
-rw-r--r--res/img/small_lamp.pngbin0 -> 164 bytes
-rw-r--r--res/img/tilesets.pngbin0 -> 2904 bytes
-rw-r--r--res/img/windchimes_0.pngbin0 -> 196 bytes
-rw-r--r--res/img/windchimes_1.pngbin0 -> 250 bytes
-rw-r--r--src/init.lua2
-rw-r--r--src/utils.lua55
23 files changed, 58 insertions, 3 deletions
diff --git a/main.lua b/main.lua
index 36294c2..2b23b5b 100644
--- a/main.lua
+++ b/main.lua
@@ -24,7 +24,7 @@ end
function love.draw(dt)
lg.origin()
- lg.setCanvas(Viewport)
+ lg.setCanvas(viewport)
lg.clear()
local scn = get_current_scene()
@@ -38,7 +38,7 @@ function love.draw(dt)
WindowScale = min(scr_width/SCR_WIDTH, scr_height/SCR_HEIGHT)
lg.draw(
- Viewport,
+ viewport,
scr_width/2, scr_height/2, 0,
WindowScale, WindowScale,
SCR_WIDTH/2, SCR_HEIGHT/2)
diff --git a/res/img/bullet.png b/res/img/bullet.png
new file mode 100644
index 0000000..99d2828
--- /dev/null
+++ b/res/img/bullet.png
Binary files differ
diff --git a/res/img/carrabasset_big_trunk.png b/res/img/carrabasset_big_trunk.png
new file mode 100644
index 0000000..689fdf6
--- /dev/null
+++ b/res/img/carrabasset_big_trunk.png
Binary files differ
diff --git a/res/img/carrabasset_vines_0.png b/res/img/carrabasset_vines_0.png
new file mode 100644
index 0000000..97e2482
--- /dev/null
+++ b/res/img/carrabasset_vines_0.png
Binary files differ
diff --git a/res/img/carrabasset_vines_1.png b/res/img/carrabasset_vines_1.png
new file mode 100644
index 0000000..e2116d2
--- /dev/null
+++ b/res/img/carrabasset_vines_1.png
Binary files differ
diff --git a/res/img/carrabasset_vines_2.png b/res/img/carrabasset_vines_2.png
new file mode 100644
index 0000000..2a43b05
--- /dev/null
+++ b/res/img/carrabasset_vines_2.png
Binary files differ
diff --git a/res/img/carrabassett_big_bush_0.png b/res/img/carrabassett_big_bush_0.png
new file mode 100644
index 0000000..fc11931
--- /dev/null
+++ b/res/img/carrabassett_big_bush_0.png
Binary files differ
diff --git a/res/img/carrabassett_props.png b/res/img/carrabassett_props.png
new file mode 100644
index 0000000..5b28a5b
--- /dev/null
+++ b/res/img/carrabassett_props.png
Binary files differ
diff --git a/res/img/carrabassett_small_bush_0.png b/res/img/carrabassett_small_bush_0.png
new file mode 100644
index 0000000..dc926e4
--- /dev/null
+++ b/res/img/carrabassett_small_bush_0.png
Binary files differ
diff --git a/res/img/carrabassett_small_trunk.png b/res/img/carrabassett_small_trunk.png
new file mode 100644
index 0000000..bfef5d5
--- /dev/null
+++ b/res/img/carrabassett_small_trunk.png
Binary files differ
diff --git a/res/img/dash_pickup.png b/res/img/dash_pickup.png
new file mode 100644
index 0000000..758b70a
--- /dev/null
+++ b/res/img/dash_pickup.png
Binary files differ
diff --git a/res/img/double_jump_pickup.png b/res/img/double_jump_pickup.png
new file mode 100644
index 0000000..c0ed3f8
--- /dev/null
+++ b/res/img/double_jump_pickup.png
Binary files differ
diff --git a/res/img/hugbug.ase b/res/img/hugbug.ase
new file mode 100644
index 0000000..78cbb8e
--- /dev/null
+++ b/res/img/hugbug.ase
Binary files differ
diff --git a/res/img/lamp_post_0.png b/res/img/lamp_post_0.png
new file mode 100644
index 0000000..8b6a9ba
--- /dev/null
+++ b/res/img/lamp_post_0.png
Binary files differ
diff --git a/res/img/muntik.ase b/res/img/muntik.ase
new file mode 100644
index 0000000..83ff0e7
--- /dev/null
+++ b/res/img/muntik.ase
Binary files differ
diff --git a/res/img/pistol.png b/res/img/pistol.png
new file mode 100644
index 0000000..5b3942e
--- /dev/null
+++ b/res/img/pistol.png
Binary files differ
diff --git a/res/img/player.ase b/res/img/player.ase
new file mode 100644
index 0000000..72f999f
--- /dev/null
+++ b/res/img/player.ase
Binary files differ
diff --git a/res/img/small_lamp.png b/res/img/small_lamp.png
new file mode 100644
index 0000000..120a22d
--- /dev/null
+++ b/res/img/small_lamp.png
Binary files differ
diff --git a/res/img/tilesets.png b/res/img/tilesets.png
new file mode 100644
index 0000000..4a431fe
--- /dev/null
+++ b/res/img/tilesets.png
Binary files differ
diff --git a/res/img/windchimes_0.png b/res/img/windchimes_0.png
new file mode 100644
index 0000000..9e1ba66
--- /dev/null
+++ b/res/img/windchimes_0.png
Binary files differ
diff --git a/res/img/windchimes_1.png b/res/img/windchimes_1.png
new file mode 100644
index 0000000..892a768
--- /dev/null
+++ b/res/img/windchimes_1.png
Binary files differ
diff --git a/src/init.lua b/src/init.lua
index c18f175..fd13bcb 100644
--- a/src/init.lua
+++ b/src/init.lua
@@ -35,7 +35,7 @@ end
function main_init()
lg.setDefaultFilter("nearest", "nearest")
- Viewport = lg.newCanvas(SCR_WIDTH, SCR_HEIGHT)
+ viewport = lg.newCanvas(SCR_WIDTH, SCR_HEIGHT)
load_textures_from()
diff --git a/src/utils.lua b/src/utils.lua
index c3e4bea..b2186cc 100644
--- a/src/utils.lua
+++ b/src/utils.lua
@@ -37,3 +37,58 @@ function dist(x1, y1, x2, y2)
local dy = y1 - y2
return (dx*dx + dy*dy)^0.5
end
+
+mathx = {}
+
+mathx.tau = math.pi * 2
+
+function mathx.sign(x)
+ if x == 0 then
+ return 0
+ end
+ return x < 0 and -1 or 1
+end
+
+function round(x)
+ return math.floor(x + 0.5)
+end
+
+function clamp(a, min, max)
+ return math.min(max, math.max(a, min))
+end
+
+function snap(x, step)
+ return math.floor(x / step) * step
+end
+
+function frac(x)
+ return x - math.floor(x)
+end
+
+local function angle_diff(a, b)
+ local diff = (b - a) % (math.pi * 2)
+ return (2 * diff) % (math.pi * 2) - diff
+end
+
+function lerp_angle(a, b, t)
+ return a + angle_diff(a, b) * (1 - 0.5^t)
+end
+
+function dot(x, y, xx, yy)
+ return x*xx + y*yy
+end
+
+function vec_sqlen(x, y)
+ return x*x + y*y
+end
+
+function vec_len(x, y)
+ return math.sqrt(x*x + y*y)
+end
+
+function rotate_vec(x, y, r)
+ local angle = math.atan2(y, x) + r
+ local len = mathx.vec_len(x, y)
+ return math.cos(angle) * len, math.sin(angle) * len
+end
+