sprite_maker.py

Created by wperez274

Created on March 28, 2023

6.87 KB

good tool to create sprites, shapes, etc.

/////// keys ////////

( , ) = increase, decrease Width *, / = increase, decrease height

[Backspace] = choose shape [EXE] = Print choosen shape

1) copy printed data.

2) Use “sprite_tester.py” to test the sprite ( Paste data in the upper area of code )

Look for the comment that says “paste code here”…

Test the different keys for different functions.

Hold VAR for like 2-3 seconds to erase all. Press X**2 (Under Backspace to fill background)

Numbers = Colors

[ANS] key = Open sprite list data and is printed on screen, (top). You can scroll to left or right to view the list of shapes chosen ( with the Backspace button.

*********

I will continue to improve and upgrade program frequently or when I see what could could improved.

I just wrote this program in like a day or two so theres plenty of room for improvements.

Also, I’m just learning to program so my code tends to be on the simple side.

to be continued…


from math import *
from random import *
from random import randint as R
from kandinsky import *
from kandinsky import fill_rect as F
from ion import *
from time import *

M=255
bg=(0,0,0)

pixels_captured=0

SW=322
SH=222

pixel_size=18

pw=pixel_size
ph=pixel_size


BLACK=(0,0,0)
WHITE=(255,)*3
GRAY=(180,)*3

RED=(255,0,0)
GREEN=(0,255,0)
BLUE=(0,0,255)

DARK_RED=(125,0,0)
DARK_GREEN=(0,125,0)
DARK_BLUE=(0,0,125)
DARK_GRAY=(90,)*3

CYAN=(0,255,255)
YELLOW=(255,255,100)
MAGENTA=(255,0,255)

penup=False
pendown=True
erase=False


erase_t=0


px=0
py=0
#pw=ph=pixel_size

pc=RED


sprite=[]

sprite_x=0
sprite_y=0

sprite_w=5
sprite_h=5
sprite_c=(0,0,0)



n=[px,py,sprite_w,sprite_h,sprite_c]


def draw_grill():
  global pixel_size

  for i in range(0,322,18):
    for j in range(0,160,18):

      fill_rect(i,0,2,140,(200,)*3)
      fill_rect(0,j,322,2,(200,)*3)



F(0,0,SW,145,bg)

#draw_grill()



erase_t_2=0

sleep(0.5)



cursx=150
cursy=0




while not keydown(KEY_EXE):
  
  
  if pendown:
    F(px,py,pw,ph,pc)

    
    
  if erase:
    pendown=False
    penup=False
    pc=bg
    F(px,py,pw,ph,pc)


  
#***********
  
  if keydown(KEY_LEFT):


    penup=True
    pendown=False

    
    F(0,200,322,50,(255,)*3)    

    F(px+pw+1,py,1,ph,bg)

    F(px+1,py+1,pw-1,ph-2,pc)


    px-=2
    
  if keydown(KEY_RIGHT):


    penup=True
    pendown=False

    F(0,145,322,80,(255,)*3)    
    F(px-1,py,1,ph,bg)
    F(px+1,py+1,pw-1,ph-2,pc)



    px+=2

  if keydown(KEY_UP):

    penup=True
    pendown=False

    F(0,145,322,80,(255,)*3)    
    F(px,py+ph+1,pw,1,bg)
    F(px+1,py+1,pw-1,ph-2,pc)


    py-=2

  if keydown(KEY_DOWN):


    penup=True
    pendown=False


    F(0,145,322,80,(255,)*3)    
    F(px,py-1,pw,1,bg)
    F(px,py,pw,ph,pc)

    py+=2
  


  if keydown(KEY_BACKSPACE) or keydown(KEY_OK):
    sleep(0.2)
    pixels_captured+=1

    F(px,py,pw,ph,pc)

    
    penup=True
    pendown=False

    sprite.append(n)

          
#****[ pen : up,down,erase

  if keydown(KEY_TOOLBOX):
    pendown=False
    erase=False
    penup=True
    
    
    
  if keydown(KEY_VAR):
    pendown=False
    erase=True
    penup=False
    pc=WHITE
    F(px,py,pw,ph,pc)
    
  
        
  if keydown(KEY_OK):
    sleep(0.2)
    penup=False
    erase=False
    pendown=True
    pc=BLACK
    F(px,py,pw,ph,pc)
 
    


#  F(200,0,2,125,BLUE)
#  F(0,138,SW,4,BLUE)



  if px<=0:
    px=0
    
  if px+pw>200:
    px=200-pw

  if py<=0:
    py=0

  if py+ph>138:
    py=138-ph




        
  if keydown(KEY_VAR):
    erase_t+=0.05    

  if erase_t>4:
    erase_t=0
    pendown=False
    erase=False
    penup=True
    
    sprite=[]
        
    F(0,0,SW,150,bg)


  if pendown:
    draw_string("Pen Down  ",3,170,BLACK,CYAN)

  elif penup:
    draw_string("Pen Up    ",3,170,BLACK,GRAY)


  else:
    draw_string("Eraser on ",3,170,BLACK,YELLOW)






  n=[px,py,pw,ph,pc]

#******************

  
  if pc != GREEN and pc != YELLOW and pc != CYAN and pc!=WHITE and erase==False:
    draw_string("Color:"+str(pc),2,145,pc)
  else:
    draw_string("Color:"+str(pc),2,145,pc,BLACK)

#******************

  if keydown(KEY_EE):
    penup=False
    erase=False
    pendown=True
    pc=WHITE

    F(px,py,pw,ph,pc)
    F(0,145,SW,SH,WHITE)
    

  if keydown(KEY_ZERO):
    penup=False
    erase=False
    pendown=True
    pc=BLACK
    F(px,py,pw,ph,pc)
    F(0,145,SW,SH,WHITE)


  if keydown(KEY_DOT):
    penup=False
    erase=False
    pendown=True
    pc=(R(0,255),R(0,255),R(0,255))
    F(px,py,pw,ph,pc)
    F(0,145,SW,SH,WHITE)


  if keydown(KEY_ONE):
    penup=False
    erase=False
    pendown=True
    pc=RED
    F(px,py,pw,ph,pc)
    F(0,145,SW,SH,WHITE)

  if keydown(KEY_TWO):
    penup=False
    erase=False
    pendown=True
    pc=GREEN
    F(px,py,pw,ph,pc)
    F(0,145,SW,SH,WHITE)


  if keydown(KEY_THREE):
    penup=False
    erase=False
    pendown=True
    pc=BLUE
    F(px,py,pw,ph,pc)
    F(0,145,SW,SH,WHITE)


  if keydown(KEY_FOUR):
    penup=False
    erase=False
    pendown=True
    pc=DARK_RED
    F(px,py,pw,ph,pc)
    F(0,145,SW,SH,WHITE)


  if keydown(KEY_FIVE):
    penup=False
    erase=False
    pendown=True
    pc=DARK_GREEN
    F(px,py,pw,ph,pc)
    F(0,145,SW,SH,WHITE)


  if keydown(KEY_SIX):
    penup=False
    erase=False
    pendown=True
    pc=DARK_BLUE
    F(px,py,pw,ph,pc)
    F(0,145,SW,SH,WHITE)

  if keydown(KEY_SEVEN):
    penup=False
    erase=False
    pendown=True
    pc=YELLOW
    F(px,py,pw,ph,pc)
    
    F(0,145,322,20,BLACK)
    draw_string("Color:"+str(pc),2,145,pc,BLACK)



  if keydown(KEY_EIGHT):
    penup=False
    erase=False
    pendown=True
    pc=CYAN
    F(px,py,pw,ph,pc)
    F(0,145,SW,SH,WHITE)

    F(0,145,322,20,BLACK)
    draw_string("Color:"+str(pc),2,145,pc)




  if keydown(KEY_NINE):
    penup=False
    erase=False
    pendown=True
    pc=MAGENTA
    F(px,py,pw,ph,pc)
    F(0,145,SW,SH,WHITE)



  

  
  if keydown(KEY_IMAGINARY):
    erase_t_2+=0.02
    
  if erase_t_2>1:
    erase_t_2=0  
    sleep(0.2)
    pixels_captured=0
    F(0,200,322,20,WHITE)
    draw_string("Pixels Captured: "+str(pixels_captured),2,200,BLACK,CYAN)


        
    
  if keydown(KEY_POWER):
    sleep(0.2)
    bg=pc
    F(0,0,144,126,bg)



  if keydown(KEY_ANS):
    sleep(0.2)
    cursx=2
    cursy=2
    bg=BLACK
    F(0,0,322,222,bg)
    F(0,22,322,1,GRAY)

    while not keydown(KEY_OK):

      if len(sprite)>=0:
        draw_string(str(sprite),cursx,cursy,GREEN,BLACK)


  
      if keydown(KEY_LEFT):
        cursx-=2
    
      if keydown(KEY_RIGHT):
        cursx+=2


    fill_rect(0,0,144,145,bg)      


  if keydown(KEY_LEFTPARENTHESIS):
#    sleep(0.01)
    pw-=1
    F(px,py,pw,ph,pc)

    F(190,1,320,100,BLACK)
    F(px+pw+1,py,1,ph,bg)

    


  if keydown(KEY_RIGHTPARENTHESIS):
#    sleep(0.01)
    pw+=1
    F(px,py,pw,ph,pc)

    F(190,1,320,100,BLACK)


  if keydown(KEY_MULTIPLICATION):
#    sleep(0.01)
    ph-=1
    F(px,py,pw,ph,pc)

    F(px,py+ph+1,pw,1,bg)

    F(190,1,320,100,BLACK)

  if keydown(KEY_DIVISION):
#    sleep(0.01)
    ph+=1
    F(px,py,pw,ph,pc)

    F(190,1,320,100,BLACK)

  if keydown(KEY_PLUS):
#    sleep(0.01)
    pw-=1
    ph-=1
    F(px,py,pw,ph,pc)

    F(190,1,320,100,BLACK)

  if keydown(KEY_MINUS):
#    sleep(0.01)
    pw+=1
    ph+=1
    F(px,py,pw,ph,pc)

    F(190,1,320,100,BLACK)




  if pw<5:
    pw=5
    
  if pw>322:
    pw=322


  if ph<5:
    ph=5
    
  if ph>222:
    ph=222


  F(200,0,2,135,BLUE)
  F(0,138,SW,4,BLUE)

  

  if keydown(KEY_COMMA):
    sleep(0.15)
    
    if keydown(KEY_LEFT):
      px-=pw

    if keydown(KEY_RIGHT):
      px+=pw
    if keydown(KEY_UP):
      py-=ph
    if keydown(KEY_DOWN):
      py+=ph





  draw_string("width:"+str(pw),225,2,GRAY,BLACK)
  draw_string("height:"+str(ph),225,24,WHITE,BLACK)
  draw_string("Pixels Captured: "+str(pixels_captured),2,200,BLACK,CYAN)










  F(px,py,1,ph,DARK_GRAY)
    
  
draw_string("press [OK]",100,100)  
  

  
#for i in sprite:
#  print(i)

print("sprite=",sprite)

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.