Inspiration:
I wanted to maintain nearly all of the code used to make "Two-Way Sigil Extender" (#754708), but combine it with what I learned making "Shaped Entropy" (#752228). The biggest change I made to the core programming was controlling the breathing-like effect so that it would flip-flop between seeds every 30 frames to allow for easy loop creation. Features I pulled from my previous entry are the similar colour palette as well as the shape sigils that are based on y position.
What is a Tweetcart Relay?:
We receive a tweetcart as a 1/1 from a friend, and we modify it to make our own tweetcart, which we then send to someone else, to continue the process. Eventually it's our hope to have many relay chains going on with many people, anyone at all who likes to make tweetcarts or wants to learn how :)
Suggested Relay Guidelines from myself:
-> Copy the prior tweetcart 1:1, and tweak the cart while keeping some part of the original program until you've left your aesthetic changes however robust, and pass it on
or
-> Copy just a portion of the cart and build new, before passing on the tweet
Relay Information:
-> inspiration tweetcart: https://teia.art/objkt/754708
-> inspiration tweetcart author: @P1x3lboy; tz1SvJbECAva9gxczfBmX3CAFUszgQXNgsNm
-> destination tweetcart author: @Alexthescott; tz1St3n29AbYXZXV8W1BG41qYzz86J2CFAW7
Pico-8 Source Code:
-> 127 Tokens, 272 Characters (280 Tweet Characters)
```
?"\^!5f100🐱☉8웃9:♥⌂;⬅️3⬇️😐1"
cls()r,p,q=rnd,srand,poke
s=r(-1)p(s)f=0g=0
q(0x5f54,0x60)q(24364,5)::_::
for i=0,80do
x,y=r(53),r(128)z=16+y/24
?chr(z),x,y,f%13+1
end
g+=1if(r()>.1)f+=1p(s)sspr(r(3),r(3),128-r(8),128-r(),0,0,128,128)
if(g>=30)g=0s+=r({-1,1})f=p(s)
flip()goto _
```
Explanation:
```
-- using @2dArray's excellent Palette-Maker
-- https://www.lexaloffle.com/bbs/?pid=68190
?"\^!5f100🐱☉8웃9:♥⌂;⬅️3⬇️😐1"
-- clear the screen and then store some keywords to characters
-- for easier/quicker usager elsewhere
cls()r,p,q=rnd,srand,poke
-- get and assign the random seed value
s=r(-1)p(s)
-- initialize variables that we wanna track over time
f=0
g=0
-- set the screen memory as the spritesheet with poke()
q(0x5f54,0x60)
-- mirror the screen from left to right with poke()
q(24364,5)
-- label for GOTO statement
::_::
-- every frame, print 80 characters down the left side of the screen
-- ? is a shorthand for print, and z is the character to print to the screen based on the y position
-- print the current colour (f) % 13 since there are 13 in the palette other than black, so we must also add 1
for i=0,80do
x,y=r(53),r(128)
z=16+y/24
?chr(z),x,y,f%13+1
end
g+=1if(r()>.1)f+=1p(s)sspr(r(3),r(3),128-r(8),128-r(),0,0,128,128)
if(g>=30)g=0s+=r({-1,1})f=p(s)
flip()goto _
-- increase our g variable each frame
g+=1
-- if random value is high enough,
-- increase colour value (f) and lock entropy by resetting the seed
-- and randomly feed-forward a part of the display
if(r()>.1)f+=1p(s)sspr(r(3),r(3),128-r(8),128-r(),0,0,128,128)
-- every 30 frames, increment the seed by either 1 or -1
-- this will eventually settle to a point where two seeds are flip-flopping between each other
-- f is reset to 0 (since srand returns 0? not sure why this works tbh)
if(g>=30)g=0s+=r({-1,1})f=p(s)
-- animate at a "smooth" 30fps
flip()
-- return to the GOTO label (causing infinite loop)
goto _
```
To Friends and Creators:
Want to change the code, or make a relay Tweetcart of yourself based on this one? No problem! You can find the official education edition of the Pico-8 here, for free, usable in the browser, thanks to the Pico-8 Creators lexaloffle & co: https://www.pico-8-edu.com/ . Simply press escape to get to the code editor, copy and paste the source code here into there, and press ctrl+r to run the pico8.
All of my social media can be found at carsonk.net, but I am most active on Twitter @CarsonKompon. Feel free to reach out if you're interested in learning more about PICO-8 and generative art as a whole :)
License: CC0