summaryrefslogtreecommitdiff
path: root/parallax/main.lua
diff options
context:
space:
mode:
Diffstat (limited to 'parallax/main.lua')
-rw-r--r--parallax/main.lua80
1 files changed, 80 insertions, 0 deletions
diff --git a/parallax/main.lua b/parallax/main.lua
new file mode 100644
index 0000000..3028d36
--- /dev/null
+++ b/parallax/main.lua
@@ -0,0 +1,80 @@
+local boundary = {
+ x = 200,
+ y = 100,
+ w = 100,
+ h = 80,
+}
+
+local bg = {
+ x = 200,
+ y = 100,
+ w = 150,
+ h = 80
+}
+local p = {
+ x = boundary.x + 10,
+ y = boundary.y + 10,
+ speed = 1,
+}
+
+function jin.core.onLoad()
+
+end
+
+local function clamp(x, a, b)
+ return math.min(math.max(x, a), b)
+end
+
+-- keypressed
+function jin.core.onEvent(e)
+ if e.type == "Quit" then
+ jin.core.stop()
+ end
+ if e.type == "KeyDown" then
+
+ end
+end
+
+local function updateBg()
+ if jin.keyboard.isPressed("Escape") then
+ jin.core.stop()
+ end
+ if jin.keyboard.isPressed("Left") then
+ p.x = p.x - p.speed
+ end
+ if jin.keyboard.isPressed("Right")then
+ p.x = p.x + p.speed
+ end
+ if jin.keyboard.isPressed("Up") then
+ p.y = p.y - p.speed
+ end
+ if jin.keyboard.isPressed("Down") then
+ p.y = p.y + p.speed
+ end
+ p.x = clamp(p.x, boundary.x, boundary.x + boundary.w)
+ p.y = clamp(p.y, boundary.y, boundary.y + boundary.h)
+
+ local x0 = boundary.x
+ local x1 = boundary.x + boundary.w
+ local tx = (p.x - x0) / (x1 - x0)
+ bg.x = tx * (x1 - x0 - bg.w) + x0
+ local y0 = boundary.y
+ local y1 = boundary.y + boundary.h
+ local ty = (p.y - y0) / (y1 - y0)
+ bg.y = ty * (y1 - y0 - bg.h) + y0
+end
+
+function jin.core.onUpdate(dt)
+ updateBg()
+end
+
+function jin.core.onDraw()
+ jin.graphics.setColor(100, 100, 100, 255)
+ jin.graphics.rect("fill", bg.x, bg.y, bg.w, bg.h)
+ jin.graphics.setColor(255,255,255,255)
+ jin.graphics.rect("line", boundary.x, boundary.y, boundary.w, boundary.h)
+ jin.graphics.setColor(255,0,0,255)
+ jin.graphics.rect("fill", p.x - 2, p.y- 2, 4, 4)
+ jin.graphics.setColor(0, 255, 0)
+ jin.graphics.rect("line", p.x - 20, p.y - 10, 40, 20)
+end