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)