I'm happy to upload my PICO-8 animations collection "Bizarroïd" in here!
It is a project that I started more than 1 year ago to get better with PICO-8. As someone who struggles with big and complex projects, I thought making a collection would allow me to see the end of a big thing since its easier to make lots of small animations than to make one big game.
Features
- 40 animations, mostly abstract, but a few are figurative.
- the possibility to randomize the color palette, "to renew your staring experience"
Controls
⬅️➡️ arrows to go through animations
⬆️ arrow to display the settings screen
⬇️ arrow to hide title of current animation
🅾️ button to shuffle the color palette
❎ button to reset the color palette
Conclusion
When I began working on this, I thought I'd continue until I reach the PICO-8 8192 tokens limit. It is now at 8115 tokens and I don't think there are enough to make another animation, so I'm posting it here. After that, I will probably try to make another animation compilation with fewer but better ones.
All so unique! A very educational way to get used to understanding how Pico8 works.
Very slick, I especially liked the floating bars and clouds. The former reminds me of Tron, and the latter looks like it would work well for a game with a dynamic day/night cycle. Any of these would make great Tweetcarts.
Nice work! The clouds are especially fantastic. And yeah - these would all be great tweetcarts
@JadeLombax @luchak
Thank you!
I will definetly look into converting some of those into tweetcarts!
I am especially fond of [04] Northern Lights. [24] Sponges and [34] Clouds are ethereal. I would like to see these in a game someday!
@Doriencey
At first I had a terrible elseif stack to check wich animation should be displayed according to the id, but later I realized that it is possible to affect functions to variables.
The way it works in the final version is that there is:
animation
: a "function variable" containing the function to call every frame to display the current animation
animations
: a table containing the functions to display each demo
animation_id
: a variable containing the index of the function that should be running
animation_id = 0 animation = menu animations = { menu,wavy_squares,floating_bars, elevator,northern,wiuwiu, machine,stack,reflect_stack, eyes,gears,squares_layers, sphere,heat_swirl,jellyfish, totems,larvae,trip,pic,tower, pendulum,wave,hazard,tentacle, sponges,twinkle,o_o, liquid_rainbow,slugs,shuffle, wind,pine_cone,fibers,magma, clouds,pulse,vines,reflect, bricks,spirits} |
When left or right is pressed, animation_id is decremented or incremented, and animation is set to animations[animation_id].
I just realized that animation can be removed and that i can call animations[animation_id]() instead.
I tried it this exact way before, but for some reason I couldn't pull it off without getting errors. I figured I missed something, hence the question.
Turns out my reasoning for how this should work was right all along, except for putting the list of animation functions outside of the _init() function. This caused my version of animations[animtion_id]
to return nil and spit out an error. For most variable defenitions this doesn't seem to make a difference, I don't even always use the _init() function. But in this case pico-8 suddenly gets very fussy about where you define your variables.
Thanks for answering my question, it still helped narrowing down why I couldn't get my state machine to work at first.
If your function table is defined outside of _init() and before the definitions of the functions it contains, it is filled with not yet defined functions (nil) but because _init() only runs when every function in your code has been defined, the problem does not occur. If I understood correctly your situation, writing your function table at the very end of your code should work (of course it makes no sense to have a definition at the end of the code, but it is a good way to get what I just explained).
[Please log in to post a comment]