2025-08-13 15:04:49 -05:00
|
|
|
(local pxl8 (require :pxl8))
|
|
|
|
|
|
|
|
|
|
(var time 0)
|
|
|
|
|
(var current-effect 1)
|
|
|
|
|
(var particles nil)
|
|
|
|
|
(var starfield-init false)
|
|
|
|
|
(var fire-init false)
|
|
|
|
|
(var rain-init false)
|
|
|
|
|
(var snow-init false)
|
|
|
|
|
|
|
|
|
|
(global init (fn []
|
2025-09-27 11:03:36 -05:00
|
|
|
(pxl8.load_palette "palettes/gruvbox.ase")
|
2025-08-13 15:04:49 -05:00
|
|
|
(set particles (pxl8.particles_new 1000))))
|
|
|
|
|
|
|
|
|
|
(global update (fn [dt]
|
|
|
|
|
(set time (+ time dt))
|
|
|
|
|
|
|
|
|
|
(when (pxl8.key_pressed "1")
|
|
|
|
|
(set current-effect 1))
|
|
|
|
|
(when (pxl8.key_pressed "2")
|
|
|
|
|
(set current-effect 2))
|
|
|
|
|
(when (pxl8.key_pressed "3")
|
|
|
|
|
(set current-effect 3)
|
|
|
|
|
(set fire-init false))
|
|
|
|
|
(when (pxl8.key_pressed "4")
|
|
|
|
|
(set current-effect 4))
|
|
|
|
|
(when (pxl8.key_pressed "5")
|
|
|
|
|
(set current-effect 5)
|
|
|
|
|
(set rain-init false))
|
|
|
|
|
(when (pxl8.key_pressed "6")
|
|
|
|
|
(set current-effect 6)
|
|
|
|
|
(set snow-init false))
|
|
|
|
|
|
|
|
|
|
(when particles
|
|
|
|
|
(pxl8.particles_update particles dt))))
|
|
|
|
|
|
|
|
|
|
(global draw (fn []
|
|
|
|
|
(match current-effect
|
|
|
|
|
1 (pxl8.vfx_plasma time 0.10 0.04 0)
|
|
|
|
|
|
|
|
|
|
2 (pxl8.vfx_tunnel time 2.0 0.25)
|
|
|
|
|
|
|
|
|
|
3 (do
|
|
|
|
|
(pxl8.clr 0)
|
|
|
|
|
(when particles
|
|
|
|
|
(when (not fire-init)
|
|
|
|
|
(pxl8.particles_clear particles)
|
|
|
|
|
(pxl8.vfx_fire particles 160 140 100 12)
|
|
|
|
|
(set fire-init true))
|
|
|
|
|
(pxl8.particles_render particles))
|
|
|
|
|
(pxl8.text "Fire Effect Test" 200 10 15))
|
|
|
|
|
|
|
|
|
|
4 (do
|
|
|
|
|
(pxl8.clr 0)
|
|
|
|
|
(local bars [{:base_y 40 :amplitude 20 :height 16 :speed 2.0 :phase 0 :color 14 :fade_color 11}
|
|
|
|
|
{:base_y 80 :amplitude 15 :height 16 :speed 2.5 :phase 1.5 :color 20 :fade_color 11}
|
|
|
|
|
{:base_y 120 :amplitude 25 :height 16 :speed 1.8 :phase 3.0 :color 26 :fade_color 11}])
|
|
|
|
|
(pxl8.vfx_copper_bars bars time)
|
|
|
|
|
(pxl8.text "Copper Bars" 200 10 15))
|
|
|
|
|
|
|
|
|
|
5 (do
|
|
|
|
|
(pxl8.clr 0)
|
|
|
|
|
(when particles
|
|
|
|
|
(when (not rain-init)
|
|
|
|
|
(pxl8.particles_clear particles)
|
|
|
|
|
(pxl8.vfx_rain particles 320 10.0)
|
|
|
|
|
(set rain-init true))
|
|
|
|
|
(pxl8.particles_render particles))
|
|
|
|
|
(pxl8.text "Rain" 200 10 15))
|
|
|
|
|
|
|
|
|
|
6 (do
|
|
|
|
|
(pxl8.clr 0)
|
|
|
|
|
(when particles
|
|
|
|
|
(when (not snow-init)
|
|
|
|
|
(pxl8.particles_clear particles)
|
|
|
|
|
(pxl8.vfx_snow particles 320 5.0)
|
|
|
|
|
(set snow-init true))
|
|
|
|
|
(pxl8.particles_render particles))
|
|
|
|
|
(pxl8.text "Snow" 200 10 15))
|
|
|
|
|
|
|
|
|
|
_ (pxl8.clr 0))))
|