From 05d2ae708c271ad9444626f3bd62b11c129760a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Cuervo?= Date: Wed, 20 Sep 2023 17:19:53 -0400 Subject: Add sprite wish --- virtual-programs/sprites.folk | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 virtual-programs/sprites.folk (limited to 'virtual-programs') diff --git a/virtual-programs/sprites.folk b/virtual-programs/sprites.folk new file mode 100644 index 00000000..3e736500 --- /dev/null +++ b/virtual-programs/sprites.folk @@ -0,0 +1,31 @@ +######## +# Could extend this to draw from camera with: +# Wish $this has thumbnail grid with 8 frames and 4 columns +# When $this has thumbnail grid /thumbnails/ { +# Wish $this draws $thumbnails; # Would need to query $thumnails for its frameCount and columns +# } +####### + +# - path get prepended with ~/folk-images/ +When /anyone/ wishes /p/ draws sprite /path/ with /frameCount/ frames and /columns/ columns { + set im [image load $path] + set sheetwidth [image width $im] + set sheetHeight [image height $im] + set spriteWidth [/ $sheetwidth $columns] + set rows [/ $frameCount $columns] + set spriteHeight [/ $sheetHeight $rows] + + When the clock time is /t/ & $p has region /r/ { + set frameNumber [expr {round ($t * 60 / $columns) % $frameCount}] + set x [* [% $frameNumber $columns] $spriteWidth] + set y [* [% $frameNumber $rows] $spriteHeight] + + set subimage [image subimage $im $x $y $spriteWidth $spriteHeight] + set center [region centroid $r] + Wish display runs [list Display::image {*}$center $subimage 0 1] + } +} + +Claim $this has demo { + Wish $this draws sprite $path with 8 frames and 4 columns +} -- cgit v1.2.3 From a720983725ce6b47703c71e9aa17214a7df17298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Cuervo?= Date: Wed, 20 Sep 2023 17:23:00 -0400 Subject: Orient images to their pages --- virtual-programs/sprites.folk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'virtual-programs') diff --git a/virtual-programs/sprites.folk b/virtual-programs/sprites.folk index 3e736500..0e4fc87e 100644 --- a/virtual-programs/sprites.folk +++ b/virtual-programs/sprites.folk @@ -22,7 +22,8 @@ When /anyone/ wishes /p/ draws sprite /path/ with /frameCount/ frames and /colum set subimage [image subimage $im $x $y $spriteWidth $spriteHeight] set center [region centroid $r] - Wish display runs [list Display::image {*}$center $subimage 0 1] + set angle [region angle $r] + Wish display runs [list Display::image {*}$center $subimage $angle 1] } } -- cgit v1.2.3