... as one might infer from the site's name. :~)
If there are animated pngs, how hard would it be for us to export a sprite's entire wardrobe as an animated png? I mean, is there more to it than just appending all the single-frame pngs?
... as one might infer from the site's name. :~)
If there are animated pngs, how hard would it be for us to export a sprite's entire wardrobe as an animated png? I mean, is there more to it than just appending all the single-frame pngs?
I don't know too much about the specs of apngs, but I think that's close to what it does, although you may want to search it up.
Right. He should finish that! :~)
HOW IS THAT EVEN POSSIBLE?!?!?! I even tried to look inside of the block and nothing! Programming level: Infinite
in the new game block:
you see upd block in the forever loop, inside that block:
M is an array representing the game state. for example, this:
would be represented with M =
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 4 4 0 0 2 0 0 0 0
4 4 0 2 2 2 0 0 0 0
each color having its own number. the red block and red outline positions are stored in T and T_heading variables
these are just x and y coordinates. to get the symbols, i have two lists containing the label text that makes blocks of different colors:
and block outlines of different colors:
these colors are in the order that the colors are numbered in the M array (well, since black = 0, red = 1, orange = 2, etc. and the list has black at 1, red at 2, orange at 3, i just have to add 1 and they will translate to correct index). this is done in this part:
which results in:
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-0-0 $rectangleSolid-1-0-255-0 $rectangleSolid-1-0-255-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-255-128-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
$rectangleSolid-1-0-255-0 $rectangleSolid-1-0-255-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-255-128-0 $rectangleSolid-1-255-128-0 $rectangleSolid-1-255-128-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0 $rectangleSolid-1-0-0-0
you can see that inside this bigger reporter script:
which the outside part is just adding the grey border (which isnt part of the M array). that whole thing is set to the text array variable. after that, the appropriate elements are replaced with the current color (which is stored in T_colorn) for the current block and outline block
you can see T_heading (the red outlines in the example) positions are replaced with the outline label and the T (red blocks) positions are replaced with the solid square labels. once that is done, the array has all the correct values to represent the game state, so i just combine the array together into one big string and set the block label to that string:
the block variable is literally set to the display block (grey ringed), so thats how it get updated without containing anything itself.
the rest of the tetris game logic is coded as it normally would be. i actually made the game normally first (drawing it to the stage) and then added the script i just explained in place of the stage drawing so that i could use the block as the display instead.
That was another YouTuber; while mattbatwings does create complex redstone builds, it was sammyuri who built a Minecraft game in Minecraft. However, it was really slow, at 0.1 fps.
EDIT: I realized it wasn't just sammyuri; it was a collaborative project. Also, they used a server to speed up the process A LOT, so 0.1 fps (1 frame per 10 seconds) is way slower than the actual time, somewhere between .00001 fps and .000005 fps (1 frame per 27.8 hours and 1 frame per 55.6 hours).
yeah that sounds right
sure lol