Inspiration:
Barring @P1x3lboy's "Ex-Maelstrom" (#752914) most pieces in this relay have opted to place elements on the screen randomly. I was especially impressed with @Carson's perfect loop in the prior iteration "Breathing Shape Extender." (#755613) It was my hope to reject random placement in favor for sine and cosine, while maintaining our use of sspr() to push the screen's contents on a regular path via @Aebrer's concept of entropy locking. Because the colorful characters are placed upon a curve, the mirroring horizontally and vertically from the top left create ovals which are either pushed to the corners, or towards the center. Star Gate here refers to 2001 A Space Odyssey when our hero is sent through a colorful time warp towards the end of the film.
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/755613
-> inspiration tweetcart author: @Carson; tz1XqJ9e6NdouxdGvm2V3aknwFnGL6Kinu6A
-> destination tweetcart author: @Aebrer; tz1ZBMhTa7gxSpaeXoqyc6bTCrxEHfZYSpPt
Pico-8 Source Code:
-> 127 Tokens, 271 Characters (279 Tweet Characters)
```
?"\^!5f100🐱☉8웃9:♥⌂;⬅️3⬇️😐1"
cls()
r,p,q,f,g,v=rnd,srand,poke,0,0,128
s=r(-1)p(s)q(0x5f54,0x60)q(24364,7)::_::
for i=0,80do
x,y=64+cos(g/v+i/80)*60*i/100,64+sin(i/80-g/v)*60
?chr(x+y),x,y,f%13+1
end
g+=.1
if(r()>.1)f+=.5p(s)sspr(r(8),r(8),v-r(8),v-r(8),0,0,v,v)
flip()goto _
```
Explanation:
```
-- using @2dArray's excellent Palette-Maker
-- https://www.lexaloffle.com/bbs/?pid=68190
?"\^!5f100🐱☉8웃9:♥⌂;⬅️3⬇️😐1"
cls()
-- store some keywords and values to characters
-- for easier/quicker usage elsewhere
-- f is for the palette, g is our Trig input,
-- v stores 128 which is used all over the program
r,p,q,f,g,v=rnd,srand,poke,0,0,128
-- get and assign the random seed value
s=r(-1)p(s)
-- set the screen memory as the sprite-sheet
q(0x5f54,0x60)
-- mirror the top left quadrant horizontally and vertically
q(24364,7)
-- label for GOTO statement
::_::
-- every frame, print 80 characters in a Trig curl, scaling outwards as i increases
-- g slowly pushes our curl around, creating movement
-- ? is a shorthand for print, as we place the PSCII character associated with x + y
-- 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,80 do
x,y=64+cos(g/v+i/80)*60*i/100,64+sin(i/80-g/v)*60
?chr(x+y),x,y,f%13+1
end
-- 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+=.5p(s)sspr(r(8),r(8),v-r(8),v-r(8),0,0,v,v)
-- 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.
Find me on Twitter @Alexthescott, and I encourage you to join our Neoretro Creative Coding Discord to learn together. Send myself or @aebrer a DM, and we'd be happy to send you an invitation