pxl8/demo/main.fnl

54 lines
1.2 KiB
Text
Raw Normal View History

2025-08-13 15:04:49 -05:00
(local pxl8 (require :pxl8))
(local menu (require :mod.menu))
2026-01-07 17:45:46 -06:00
(local music (require :mod.music))
2025-08-13 15:04:49 -05:00
(var time 0)
2025-09-28 13:10:29 -05:00
(var logo-x 256)
(var logo-y 148)
(var logo-dx 100)
(var logo-dy 80)
(var logo-sprite nil)
2026-01-31 09:31:17 -06:00
2025-08-13 15:04:49 -05:00
(global init (fn []
2025-10-06 19:00:03 -05:00
(pxl8.load_palette "res/sprites/pxl8_logo.ase")
(set logo-sprite (pxl8.load_sprite "res/sprites/pxl8_logo.ase"))
2026-01-31 09:31:17 -06:00
(music.init)
(menu.init)))
2025-08-13 15:04:49 -05:00
(global update (fn [dt]
(when (pxl8.key_pressed "escape")
(menu.toggle))
(when (not (menu.is-paused))
(set time (+ time dt))
2026-01-31 09:31:17 -06:00
(music.update dt)
(set logo-x (+ logo-x (* logo-dx dt)))
(set logo-y (+ logo-y (* logo-dy dt)))
(when (< logo-x 0)
(set logo-x 0)
(set logo-dx (math.abs logo-dx)))
(when (> logo-x 512)
(set logo-x 512)
(set logo-dx (- (math.abs logo-dx))))
(when (< logo-y 0)
(set logo-y 0)
(set logo-dy (math.abs logo-dy)))
(when (> logo-y 296)
(set logo-y 296)
(set logo-dy (- (math.abs logo-dy)))))
(when (menu.is-paused)
(menu.update))))
2025-08-13 15:04:49 -05:00
2025-10-04 04:13:48 -05:00
(global frame (fn []
(pxl8.clear 0)
(when logo-sprite
(pxl8.sprite logo-sprite logo-x logo-y 128 64 (< logo-dx 0) (< logo-dy 0)))
(when (menu.is-paused)
2026-02-02 17:48:25 -06:00
(pxl8.push_target)
(menu.draw)
(pxl8.pop_target))))