pxl8/demo/main.fnl

82 lines
2.3 KiB
Text
Raw Normal View History

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))))