sonic.py
Created by
andrewfx
Created on
August 07, 2022
6.89 KB
#from kandinsky import set_pixel
from kandinsky import set_pixel
#background
for y in range ( 222 ):
for x in range ( 320 ):
set_pixel ( x , y ,( 100 , 100 , 255 ))
#sprite defs
class sonic :
palette = (( 0 , 0 , 0 ),( 255 , 255 , 255 ),( 170 , 170 , 170 ),( 170 , 85 , 85 ),( 255 , 170 , 85 ),( 0 , 0 , 170 ),( 85 , 85 , 255 ))
image = (( - 1 , - 1 , - 1 , - 1 , - 1 , 5 , 5 , 5 , 5 , 5 , - 1 , - 1 , - 1 , - 1 , 5 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , 5 , 5 , 6 , 6 , 6 , 5 , 6 , 5 , 5 , 5 , 5 , 6 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , 5 , 6 , 5 , 3 , 5 , 6 , 6 , 6 , 5 , 6 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , 5 , 5 , 5 , 4 , 3 , 5 , 6 , 6 , 6 , 5 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , 5 , 5 , 5 , 3 , 4 , 3 , 5 , 6 , 6 , 6 , 5 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , 5 , 5 , 6 , 5 , 3 , 4 , 6 , 6 , 1 , 6 , 6 , 6 , 5 , - 1 , - 1 ), ( - 1 , - 1 , 5 , 5 , 6 , 6 , 6 , 6 , 6 , 6 , 2 , 1 , 1 , 6 , 6 , 5 , - 1 , - 1 ), ( - 1 , 5 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 2 , 1 , 1 , 0 , 6 , 0 , - 1 , - 1 ), ( 5 , 5 , 5 , 5 , 5 , 5 , 5 , 6 , 6 , 6 , 2 , 1 , 1 , 0 , 6 , 0 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , 5 , 5 , 5 , 5 , 6 , 6 , 6 , 2 , 1 , 1 , 0 , 0 , 0 , 0 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , 5 , 5 , 5 , 5 , 6 , 3 , 3 , 1 , 1 , 0 , 3 , 0 , 0 , - 1 ), ( - 1 , - 1 , - 1 , 5 , 6 , 5 , 5 , 5 , 3 , 4 , 4 , 4 , 3 , 3 , 4 , 0 , 0 , - 1 ), ( - 1 , - 1 , 5 , 6 , 5 , 5 , 5 , 5 , 3 , 4 , 4 , 4 , 4 , 4 , 4 , 3 , - 1 , - 1 ), ( - 1 , - 1 , 5 , 6 , 5 , 5 , 5 , 5 , 5 , 3 , 4 , 4 , 4 , 4 , 3 , - 1 , - 1 , - 1 ), ( - 1 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 5 , 3 , 3 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 5 , 5 , 5 , 5 , 0 , 0 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , 5 , 5 , 3 , 4 , 5 , 3 , 4 , 0 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , 5 , 5 , 3 , 4 , 5 , 3 , 4 , 4 , 3 , 0 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , 5 , 5 , 3 , 4 , 5 , 5 , 3 , 4 , 4 , 4 , 0 , 0 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , 5 , 5 , 2 , 1 , 2 , 5 , 3 , 4 , 4 , 4 , 2 , 2 , 0 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , 5 , 2 , 1 , 1 , 1 , 2 , 3 , 4 , 4 , 3 , 2 , 2 , 0 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , 2 , 1 , 1 , 1 , 2 , 5 , 3 , 3 , 5 , 2 , 2 , 0 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , 2 , 1 , 2 , 5 , 5 , 5 , 5 , - 1 , 0 , 0 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 5 , 5 , - 1 , 5 , 6 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 5 , 6 , - 1 , 5 , 6 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 0 , 5 , 5 , - 1 , 5 , 6 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , 0 , 1 , 5 , 1 , 0 , 0 , 0 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , 0 , 2 , 1 , 2 , 0 , 0 , 3 , 0 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , 0 , 3 , 0 , 0 , 0 , 4 , 0 , 0 , 3 , 0 , 0 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , 0 , 3 , 4 , 4 , 4 , 4 , 1 , 1 , 0 , 0 , 3 , 0 , 0 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , 0 , 3 , 3 , 3 , 3 , 2 , 3 , 4 , 4 , 4 , 0 , 3 , 3 , 0 ), ( - 1 , - 1 , - 1 , - 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ))
x = 100
y = 100
class sonic_gen :
palette = (( 0 , 0 , 0 ), ( 72 , 0 , 0 ), ( 144 , 0 , 0 ), ( 36 , 36 , 144 ), ( 252 , 0 , 0 ), ( 72 , 72 , 72 ), ( 72 , 72 , 180 ), ( 108 , 108 , 216 ), ( 180 , 108 , 72 ), ( 144 , 144 , 144 ), ( 144 , 144 , 252 ), ( 180 , 180 , 180 ), ( 252 , 180 , 144 ), ( 252 , 252 , 252 ))
image = (( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 6 , 6 , 6 , 6 , 6 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 7 , 7 , 6 , 6 , 6 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , 3 , 3 , 3 , 3 , 6 , 6 , 6 , 6 , 6 , 3 , 3 , 7 , 7 , 7 , 6 , 6 , - 1 , - 1 , - 1 , - 1 , 3 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , 3 , 3 , 3 , 3 , 3 , 6 , 6 , 3 , 12 , 3 , 7 , 7 , 7 , 7 , 6 , 6 , - 1 , 3 , 3 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 3 , 3 , 3 , 8 , 12 , 12 , 3 , 7 , 10 , 7 , 7 , 7 , 6 , 3 , 3 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 6 , 3 , 8 , 12 , 12 , 12 , 6 , 10 , 10 , 10 , 7 , 7 , 6 , 3 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 6 , 6 , 6 , 3 , 8 , 8 , 7 , 7 , 10 , 10 , 10 , 10 , 10 , 7 , 7 , 6 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , 6 , 6 , 6 , 3 , 6 , 6 , 6 , 7 , 7 , 10 , 7 , 7 , 7 , 7 , 10 , 7 , 7 , 6 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , 6 , 6 , 6 , 6 , 3 , 3 , 6 , 6 , 7 , 7 , 7 , 7 , 7 , 13 , 13 , 10 , 7 , 10 , 7 , 7 , 6 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , 6 , 6 , 6 , 6 , 6 , 3 , 3 , 6 , 6 , 7 , 7 , 7 , 7 , 10 , 13 , 13 , 13 , 10 , 7 , 7 , 7 , 10 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , 6 , 6 , 3 , 3 , 3 , 6 , 3 , 3 , 6 , 6 , 6 , 7 , 7 , 7 , 10 , 13 , 13 , 13 , 0 , 6 , 7 , 7 , 0 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 6 , 6 , 7 , 7 , 7 , 10 , 13 , 13 , 13 , 0 , 0 , 6 , 7 , 0 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 3 , 3 , 3 , 3 , 6 , 6 , 6 , 6 , 7 , 7 , 13 , 13 , 13 , 0 , 0 , 10 , 0 , 0 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 3 , 3 , 3 , 6 , 6 , 6 , 6 , 6 , 7 , 13 , 13 , 0 , 0 , 13 , 0 , 9 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 6 , 6 , 3 , 3 , 3 , 3 , 6 , 8 , 13 , 13 , 6 , 10 , 13 , 13 , 13 , 8 , 9 , 0 , 9 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , 6 , 6 , 6 , 6 , 3 , 3 , 3 , 3 , 8 , 12 , 12 , 12 , 13 , 13 , 13 , 13 , 12 , 12 , 0 , 0 , 0 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , 6 , 6 , 6 , 3 , 3 , 3 , 3 , 3 , 3 , 8 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , 12 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , 6 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 8 , 12 , 12 , 12 , 12 , 12 , 8 , 8 , 2 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , 6 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 0 , 3 , 3 , 8 , 8 , 8 , 8 , 8 , 2 , 2 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 3 , 3 , 3 , 3 , 0 , 0 , 3 , 3 , 6 , 2 , 2 , 2 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 3 , 12 , 12 , 12 , 12 , 6 , 8 , 12 , 12 , 8 , 2 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 12 , 12 , 8 , 8 , 8 , 6 , 8 , 12 , 12 , 12 , 12 , 8 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 12 , 8 , 8 , 3 , 3 , 3 , 6 , 8 , 12 , 12 , 12 , 12 , 8 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 12 , 8 , 3 , 3 , 3 , 3 , 6 , 8 , 8 , 12 , 12 , 8 , 2 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 3 , 8 , 13 , 13 , 9 , 13 , 9 , 6 , 6 , 8 , 8 , 8 , 2 , 0 , 5 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 3 , 2 , 13 , 9 , 13 , 13 , 13 , 3 , 6 , 6 , 6 , 6 , 3 , 5 , 9 , 9 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 3 , 3 , 9 , 5 , 9 , 9 , 9 , 3 , 6 , 3 , 0 , 3 , 0 , 5 , 9 , 9 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , - 1 , - 1 , - 1 , 9 , 9 , 9 , 9 , 7 , 6 , - 1 , 3 , 3 , 0 , 0 , 5 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 0 , 9 , 9 , 3 , 7 , - 1 , - 1 , 3 , 3 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 7 , - 1 , - 1 , 3 , 3 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 7 , - 1 , - 1 , - 1 , 3 , 3 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 3 , 7 , - 1 , - 1 , - 1 , 3 , 3 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 9 , 11 , 13 , 13 , 13 , - 1 , 5 , 9 , 9 , 9 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 9 , 9 , 9 , 11 , 11 , - 1 , 5 , 5 , 5 , 9 , 9 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 0 , 2 , 9 , 9 , 2 , 2 , 13 , 9 , 5 , 5 , 9 , 2 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 0 , 2 , 2 , 2 , 11 , 13 , 9 , 9 , 4 , 1 , 1 , 5 , 9 , 9 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 0 , 2 , 2 , 2 , 9 , 11 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , 1 , 2 , 2 , 2 , - 1 , - 1 , - 1 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 0 , 2 , 2 , 2 , 9 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , 2 , 2 , 2 , 2 ), ( - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ))
x = 0
y = 0
#draw sprites
def draw_sprite ( cur_sprite ):
for y in range ( len ( cur_sprite . image )):
for x in range ( len ( cur_sprite . image [ y ])):
if cur_sprite . image [ y ][ x ] != - 1 :
set_pixel ( x + cur_sprite . x , y + cur_sprite . y , cur_sprite . palette [ cur_sprite . image [ y ][ x ]] )
draw_sprite ( sonic_gen )
draw_sprite ( sonic )