(local pxl8 (require :pxl8)) (local menu (require :mod.menu)) (local music (require :mod.music)) (var time 0) (var logo-x 256) (var logo-y 148) (var logo-dx 100) (var logo-dy 80) (var logo-sprite nil) (global init (fn [] (pxl8.load_palette "res/sprites/pxl8_logo.ase") (set logo-sprite (pxl8.load_sprite "res/sprites/pxl8_logo.ase")) (music.init) (menu.init))) (global update (fn [dt] (when (pxl8.key_pressed "escape") (menu.toggle)) (when (not (menu.is-paused)) (set time (+ time dt)) (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)))) (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) (pxl8.push_target) (menu.draw) (pxl8.pop_target))))