PICO-8: Simple Animation Explanation
Keys
Z - Next Step
X - Auto/Manual
Code
This is the code displayed in the tutorial. Feel free to copy/paste it for your own use.
Note: You can use as many or as few sprites as you want in the sp
table, and in any order you want.
function _init() t,f,s=0,1,4 --tick,frame,step sp={1,2,3,4,5,6} --sprites end function _update() t=(t+1)%s --tick fwd if (t==0) f=f%#sp+1 end function _draw() spr(sp[f],x,y) end
Here's another implementation that assumes the tick
, frame
, and step
variables and the sp
table are all part of another table. (In this case, p
, for player.)
function _init() p={} --player p.t,p.f,p.s=0,1,4 --tick,frame,step p.sp={1,2,3,4,5,6} --sprites end function _update() animate(p) end function _draw() spr(p.sp[p.f],x,y) end --animate an object function animate(o) o.t=(o.t+1)%o.s --tick fwd if (o.t==0) o.f=o.f%#o.sp+1 end
Status | Released |
Platforms | HTML5 |
Rating | Rated 5.0 out of 5 stars (10 total ratings) |
Author | MBoffin (Dylan Bennett) |
Genre | Simulation, Educational |
Made with | PICO-8 |
Tags | PICO-8 |
Development log
- Cleaning up animation frame countingJul 03, 2017
Comments
Log in with itch.io to leave a comment.
I was struggling to animate 16x16 sprites until I used your code.
Massive Thanks!
Thank you for this tutorial!
Also, there is a syntax error in line 3 (a dot before
p.f
).Very good explanation, thank you!
I think this could be made a bit smaller by making use of FLR() to divide the modulos. Since it's one-sprite, maybe don't need 2-variables to keep track of it ? Maybe ...
Exactly what I needed! Thank you very much!
Modulus is totally the secret sauce. You just reduced my 2 hour struggle to figure that out into a handful of code. Thanks!
this is excellent , and general purpose. thank you!