kolibrios/data/common/media/grafx2/scripts/samples_2.4/demo/Spritesheet.lua

47 lines
1.1 KiB
Lua
Raw Normal View History

--ANIM: Sprite Animator v0.15
--Spare page holds data - Plays on current
--by Richard Fhager
run("../libs/memory.lua")
arg=memory.load({XS=16,YS=16,SPACE=1,FRAMES=8,XOFF=0,YOFF=0,FPS=10})
OK, XS, YS, SPACE, FRAMES, XOFF, YOFF, FPS = inputbox("Sprite-Sheet Animator",
"Sprite X-size", arg.XS, 1, 256,0,
"Sprite Y-size", arg.YS, 1, 256,0,
"Spacing", arg.SPACE, 0, 32,0,
"# of Frames", arg.FRAMES,2, 100,0,
"X-offset", arg.XOFF, 0, 800,0,
"Y-offset", arg.YOFF, 0, 800,0,
"Play Speed (FPS)",arg.FPS, 1, 60,0
);
if OK == true then
memory.save({XS=XS,YS=YS,SPACE=SPACE,FRAMES=FRAMES,XOFF=XOFF,YOFF=YOFF,FPS=FPS})
MAXPLAYS = 100
w,h = getpicturesize()
OX = w / 2 - XS/2
OY = h / 2 - YS/2
for play = 1, MAXPLAYS, 1 do
for f = 0, FRAMES-1, 1 do
for y = 0, YS-1, 1 do
for x = 0, XS-1, 1 do
sx = x + XOFF + f * (XS + SPACE)
sy = y + YOFF
putpicturepixel(OX+x, OY+y, getsparepicturepixel(sx, sy))
end
end
updatescreen(); if (waitbreak(1/FPS)==1) then return; end
end
end -- plays
end --OK