add anim and transitions and re-org lua api scripts

This commit is contained in:
asrael 2025-11-15 11:40:27 -06:00
parent a15d0db902
commit 27b6459b9a
24 changed files with 1857 additions and 573 deletions

View file

@ -15,6 +15,14 @@
(var logo-dx 100)
(var logo-dy 80)
(var logo-sprite nil)
(var transition nil)
(var transition-pending nil)
(fn switch-demo [new-demo]
(set transition-pending new-demo)
(set transition (pxl8.transition_create :pixelate 0.5))
(pxl8.transition_set_color transition 0xFF000000)
(pxl8.transition_start transition))
(global init (fn []
(cube3d.init)
@ -26,21 +34,27 @@
(global update (fn [dt]
(set time (+ time dt))
(when (pxl8.key_pressed "1") (set active-demo :logo))
(when (pxl8.key_pressed "2") (set active-demo :plasma))
(when (pxl8.key_pressed "3") (set active-demo :tunnel))
(when (pxl8.key_pressed "4") (set active-demo :raster))
(when (pxl8.key_pressed "5")
(set active-demo :fire)
(set fire-init? false))
(when (pxl8.key_pressed "6")
(set active-demo :rain)
(set rain-init? false))
(when (pxl8.key_pressed "7")
(set active-demo :snow)
(set snow-init? false))
(when (pxl8.key_pressed "8") (set active-demo :cube3d))
(when (pxl8.key_pressed "9") (set active-demo :worldgen))
(when transition
(pxl8.transition_update transition dt)
(when (pxl8.transition_is_complete transition)
(when transition-pending
(set active-demo transition-pending)
(set transition-pending nil)
(when (= active-demo :fire) (set fire-init? false))
(when (= active-demo :rain) (set rain-init? false))
(when (= active-demo :snow) (set snow-init? false)))
(pxl8.transition_destroy transition)
(set transition nil)))
(when (pxl8.key_pressed "1") (switch-demo :logo))
(when (pxl8.key_pressed "2") (switch-demo :plasma))
(when (pxl8.key_pressed "3") (switch-demo :tunnel))
(when (pxl8.key_pressed "4") (switch-demo :raster))
(when (pxl8.key_pressed "5") (switch-demo :fire))
(when (pxl8.key_pressed "6") (switch-demo :rain))
(when (pxl8.key_pressed "7") (switch-demo :snow))
(when (pxl8.key_pressed "8") (switch-demo :cube3d))
(when (pxl8.key_pressed "9") (switch-demo :worldgen))
(when (pxl8.key_pressed "=")
(set use-famicube-palette? (not use-famicube-palette?))
(local palette-path (if use-famicube-palette? "res/palettes/famicube.ase" "res/sprites/pxl8_logo.ase"))
@ -109,4 +123,7 @@
:worldgen (worldgen.frame)
_ (pxl8.clr 0))))
_ (pxl8.clr 0))
(when transition
(pxl8.transition_render transition))))