guide = """ Basic Guide: ==================================== Keys: ------------------------------------------ Key [ Backspace ] = Set shape or object. Key [ VAR ] = Undo Last object. Key [ COSINE ] = Test Game Level. Key [ EXE ] = EXIT & Print Data of All Set Objects and Background as well.. ================================ FAST MODE: Hold [ SHIFT ] to SHAPE Change fast. ----------------------------------------------------- SHAPE Change *********************** ( - Decrease Width ) [ ( ], [ ) ] ( Increase Width+ ) ( - Decrease Height ) [ * ], [ / ] ( Increase Height + ) ********************************************************* Hold [ Sq ] to go fast with Movement ( LEFT RIGHT UP DOWN ). **Colors: [ OK ] = Drop Last Set Piece. [ 0 ] (ZERO) = RANDOMIZE All Colored Objects and Background. [ 1 ] = Change All Set Objects Color to Black. [ 7 ] = Red [ 8 ] = Green [ . ] = Change Current Unset Object to Color Black & Background to White. [ x10^ ] = Opposite of [ . ] Every Key has a different fucntion. ################################## """ #LEVEL & SPRITE CREATOR #BY: WILSON from math import * from random import * from random import randint as RAND from kandinsky import * from kandinsky import fill_rect as F from ion import keydown as KEYP from kandinsky import draw_string as STR from ion import * from time import * M=255 MAPX=0 MAPY=0 sketch_mode=False TEST_ON=False bg=(M,)*3 pixels_captured=0 SW=322 SH=222 faston=True BLACK=(0,)*3 WHITE=(M,)*3 GRAY=(180,)*3 RED=(M,0,0) GREEN=(0,M,0) BLUE=(0,0,M) CYAN=(0,M,M) YELLOW=(M,M,100) MAGENTA=(M,0,M) GRAY=(155,)*3 RED=(155,0,0) GREEN=(0,155,0) BLUE=(0,0,155) penup=False pendown=True px=40 py=100 pc=(0,0,255) pw=50 ph=10 ALLSCREENPIXELS=[] ########################### # # TO EDIT A LEVEL, # # PASTE DATA BELOW HERE!! # ############################ # level to edit edited_bg= (242, 187, 75) edited_level= [ [MAPX+28, MAPY+105, 294, 117, (49, 14, 65)], [MAPX+199, MAPY+52, 123, 7, (82, 92, 26)], [82, 79, 79, 7, (62, 208, 36)], [MAPX+145, MAPY+148, 22, 42, (0, M, M)], [224, 148, 24, 42, (46, 230, 247)], [MAPX+75, MAPY+144, 27, 43, (224, 90, 148)], [207, 59, 115, 44, (35, 6, 95)], [MAPX+1, MAPY+46, 50, 20, (0, 0, 0)], [97, 40, 50, 20, (0, 0, 0,)] ] edited_level_on=False n=[px,py,pw,ph,pc] edited_n=[] grillon=False TESTMODE=False def TEST(): global ALLSCREENPIXELS,refresh_level,bg,px,py,pw,ph,pc GAME_OVER=False float_energy=30 score=0 life=3 x=100 y=30 w=RAND(13,16) h=RAND(12,24) c=(RAND(0,255),RAND(0,255),RAND(0,255)) direc=["left","right","up","down"] DIR=direc[0] for i in ALLSCREENPIXELS: if i[2]<20 and i[3]<20: F(i[0],i[1],i[2],i[3],i[4]) if DIR==direc[0]: i[0]-=1 F(i[0]+i[2]+1,i[1],1,i[3],bg) if DIR==direc[1]: i[0]-=1 F(i[0]-1,i[1],1,i[3],bg) if i[0]<0: i[0]=0 if i[0]+i[2]>322: i[0]=322-i[2] if x+w>=i[0] and x<=i[0]+i[2] and y+h>=i[1] and y<=i[1]+i[3]: sleep(0.3) F(x,y,w,h,b,g) x=150 y=30 life-=1 F(0,0,322,222,bg) for i in ALLSCREENPIXELS: F(*i) while not GAME_OVER and not keydown(KEY_OK): draw_string("E:[",2,1) fill_rect(30,4,int(float_energy),13,(0,255,255)) fill_rect(x,y,w,h,c) fill_rect(x+3,y+3,4,3,BLACK) fill_rect(x+9,y+3,4,3,BLACK) if keydown(KEY_LEFT): x-=1 fill_rect(x+w+1,y,1,h,bg) if keydown(KEY_RIGHT): x+=1 fill_rect(x-1,y,1,h,bg) if keydown(KEY_UP) and float_energy>0 or keydown(KEY_BACKSPACE) and float_energy>0: y-=2 fill_rect(230,4,int(float_energy),13,bg) float_energy-=0.4 fill_rect(x,y+h+1,w,1,bg) for i in ALLSCREENPIXELS: if x+w>i[0] and x<i[0]+i[2] and y+h>i[1] and y+h<i[1]+2 and i[-1]==(255,0,0): sleep(0.2) life-=1 x=100 y=30 float_energy=40 for i in ALLSCREENPIXELS: if x+w>i[0] and x<i[0]+i[2] and y+h>i[1] and y+h<i[1]+2: float_energy=0 y-=1 float_energy=40 for i in ALLSCREENPIXELS: if x+w>i[0] and x<i[0]+i[2] and y+h>i[1] and y+h<i[1]+i[3]: for i in ALLSCREENPIXELS: F(*i) if life<1: sleep(0.4) fill_rect(0,0,322,222,(0,0,0)) sleep(1) draw_string("GAME OVER",100,80,(255,0,0),(0,0,0)) sleep(1) draw_string("Score:"+str(score),100,130,WHITE,(0,0,0)) sleep(1.5) draw_string("PRESS [OK]",120,180,BLACK,GREEN) GAME_OVER=True px=100 py=100 pw=20 ph=6 refresh_level() TEST_ON=False if get_pixel(x,y+h) != (0,0,0) and get_pixel(x+w,y+h) != (0,0,0) or get_pixel(x,y+h) != (255,)*3 and get_pixel(x+w,y+h) != (255,)*3: sleep(0.001) y+=1 fill_rect(x-1,y-1,w+2,1,bg) if get_pixel(x,y+h) == (0,0,0) and get_pixel(x+w,y+h) == (0,0,0): float_energy=30 if y+h>222: float_energy=30 y=222-h def draw_grill(): global pw,ph,SW,SH size = pw for i in range(320//10): fill_rect(10*i,0,1,10*(220//10),BLACK) if size*i <= 220: fill_rect(0,10*i,320,1,(RAND(0,150),RAND(0,150),RAND(0,150))) def print_data(): global pw,ph,pixels_captured STR("W:"+str(pw)+",H:"+str(ph),40,1,BLACK,bg) STR("[P]:"+str(len(ALLSCREENPIXELS)),140,1,CYAN,BLACK) F(60,20,SW,2,BLACK) #******************** #///important!///// #dont remove #/////////////////// def draw_edited_level(): global edited_level,edited_bg,SW,SH for i in edited_level: fill_rect(*i) def refresh_level(): global ALLSCREENPIXELS,bg,SW,SH,TEST if TEST_ON==False: F(0,0,SW,SH,bg) for i in ALLSCREENPIXELS: fill_rect(*i) DROP=False def drop_piece(): global px,py,pw,ph,pc,n,ALLSCREENPIXELS ALLSCREENPIXELS[-1][1]+=4 F(ALLSCREENPIXELS[-1][0],ALLSCREENPIXELS[-1][1]-4,ALLSCREENPIXELS[-1][2],4,bg) sleep(0.5) cursx=150 cursy=0 #main function EXIT=False while not KEYP(KEY_EXE) and not EXIT: if KEYP(KEY_LOG): print_data() F(px,py,pw,ph,pc) #************************** # navigate #************************** if KEYP(KEY_LEFT): px-=3 if KEYP(KEY_RIGHT): px+=3 if KEYP(KEY_UP): py-=3 if KEYP(KEY_DOWN): py+=3 #************************** if KEYP(KEY_BACKSPACE): sleep(0.2) ALLSCREENPIXELS.append(n) STR("[P]:"+str(len(ALLSCREENPIXELS)),200,1,CYAN,BLACK) if not KEYP(KEY_LEFT): if not KEYP(KEY_RIGHT): if not KEYP(KEY_UP): if not KEYP(KEY_DOWN): pc=GRAY pw-=3 ph-=3 F(px,py,pw,ph,pc) #****[ pen : up,down,erase #dont remove this n=[px,py,pw,ph,pc] # colors if KEYP(KEY_EE): sleep(0.2) bg=BLACK if len(ALLSCREENPIXELS)>0: for i in ALLSCREENPIXELS: i[-1]=WHITE refresh_level() #*********************** if KEYP(KEY_ONE): sleep(0.2) if len(ALLSCREENPIXELS)>0: for i in ALLSCREENPIXELS: i[-1]=BLACK refresh_level() if KEYP(KEY_TWO): sleep(0.2) pc=WHITE F(px,py,pw,ph,pc) if KEYP(KEY_THREE): sleep(0.2) pc=(RAND(0,M),RAND(0,M),M) F(px,py,pw,ph,pc) if KEYP(KEY_FOUR): sleep(0.2) for i in ALLSCREENPIXELS: i[-1]=WHITE refresh_level() if KEYP(KEY_SIX): sleep(0.2) TEST() if KEYP(KEY_SEVEN): sleep(0.2) pc=(255,0,0) if KEYP(KEY_EIGHT): sleep(0.2) pc=(0,255,0) F(px,py,pw,ph,pc) #///////////////////////// #grill on if KEYP(KEY_NINE): sleep(0.2) draw_grill() sketch_mode=True if keydown(KEY_PI): sketch_mode=False bg=WHITE pc=BLACK refresh_level() if KEYP(KEY_ANS): sleep(0.2) cursx=20 cursy=120 F(0,0,SW,SH,BLACK) while not KEYP(KEY_OK): STR("Press [OK] ",20,0) if len(ALLSCREENPIXELS)>=0: STR(str(ALLSCREENPIXELS),cursx,cursy,GREEN,BLACK) if KEYP(KEY_LEFT): F(200,1,122,20,WHITE) if len(ALLSCREENPIXELS)<10: cursx-=2 if len(ALLSCREENPIXELS)>=10: cursx-=5 if KEYP(KEY_RIGHT): F(200,1,122,20,WHITE) if len(ALLSCREENPIXELS)<10: cursx+=2 if len(ALLSCREENPIXELS)>=10: cursx+=5 if cursx>310: cursx=310 if cursx<-len(ALLSCREENPIXELS)*322: cursx=-len(ALLSCREENPIXELS)*322 STR("X,Y: "+str(cursx)+","+str(cursy),200,1,CYAN,BLACK) refresh_level() F(px,py,pw,ph,pc) if KEYP(KEY_LEFTPARENTHESIS): pw-=2 F(px,py,pw,ph,pc) if keydown(KEY_SHIFT): pw-=6 if sketch_mode==False: refresh_level() if KEYP(KEY_RIGHTPARENTHESIS): pw+=2 F(px,py,pw,ph,pc) if keydown(KEY_SHIFT): pw+=6 if sketch_mode==False: refresh_level() if KEYP(KEY_MULTIPLICATION): ph-=2 F(px,py,pw,ph,pc) if keydown(KEY_SHIFT): ph-=6 if sketch_mode==False: refresh_level() if KEYP(KEY_DIVISION): ph+=2 if keydown(KEY_SHIFT): ph+=6 if sketch_mode==False: refresh_level() if KEYP(KEY_PLUS): pw-=2 ph-=2 F(px,py,pw,ph,pc) if keydown(KEY_SHIFT): pw-=6 ph-=6 if sketch_mode==False: refresh_level() if KEYP(KEY_MINUS): F(px,py,pw,ph,pc) pw+=2 ph+=2 if keydown(KEY_SHIFT): pw+=6 ph+=6 if sketch_mode==False: refresh_level() if pw<2: pw=2 if ph<2: ph=2 if KEYP(KEY_OK): sleep(0.2) pc=(RAND(0,255),RAND(0,255),RAND(0,255)) F(px,py,pw,ph,pc) if pixels_captured<0: pixels_captured=0 if KEYP(KEY_OK): pc=(RAND(0,M),RAND(0,M),RAND(0,M)) refresh_level() if KEYP(KEY_DOT): bg=WHITE for i in ALLSCREENPIXELS: i[-1]=BLACK refresh_level() if KEYP(KEY_LEFT) or KEYP(KEY_RIGHT) or KEYP(KEY_UP) or KEYP(KEY_DOWN): if grillon==False: refresh_level() if KEYP(KEY_ZERO): sleep(0.2) bg=(RAND(0,M),RAND(0,M),RAND(0,M)) refresh_level() if KEYP(KEY_EXP): sleep(0.2) edited_level_on=True draw_edited_level() if KEYP(KEY_SINE): sleep(0.2) STR("EDIT MODE",200,1,WHITE,WHITE) edited_level_on=False refresh_level() if edited_level_on: STR("EDIT MODE",200,1) if py<0: py=0 if py>300: py=190 if px<0: px=0 if px+pw>322: px=322-pw if py<0: py=0 if py+ph>222: py=222-ph if KEYP(KEY_LEFT): if keydown(KEY_SQUARE): px-=8 if sketch_mode==False: refresh_level() if KEYP(KEY_RIGHT): if keydown(KEY_SQUARE): px+=8 if sketch_mode==False: refresh_level() if KEYP(KEY_UP): if keydown(KEY_SQUARE): py-=8 if sketch_mode==False: refresh_level() if KEYP(KEY_DOWN): if keydown(KEY_SQUARE): py+=8 if sketch_mode==False: refresh_level() #important # pop last piece if KEYP(KEY_VAR): if len(ALLSCREENPIXELS)>0: sleep(0.2) del ALLSCREENPIXELS[-1] refresh_level() if KEYP(KEY_LOG): TESTMODE==True if TESTMODE: TEST() if KEYP(KEY_TANGENT) or KEYP(KEY_BACKSPACE): STR("[P]:"+str(len(ALLSCREENPIXELS)),200,1,CYAN,BLACK) if KEYP(KEY_LEFTPARENTHESIS): F(px+pw-1,py,1,ph,CYAN) F(px+pw+1,py,2,ph,bg) if KEYP(KEY_MULTIPLICATION): F(px,py+ph-1,pw,1,CYAN) F(px,py+ph+1,pw,2,bg) if KEYP(KEY_PLUS): F(px,py+ph-1,pw,1,CYAN) F(px,py+ph+1,pw,2,bg) F(px+pw-1,py,1,ph,CYAN) F(px+pw+1,py,2,ph,bg) if KEYP(KEY_POWER): sleep(0.2) px=150 py=100 pw=3 ph=3 bg=BLACK pc=WHITE if KEYP(KEY_VAR): if len(ALLSCREENPIXELS)==0: pw=10 ph=10 refresh_level() sleep(0.1) if KEYP(KEY_TOOLBOX): sleep(0.2) fill_rect(200,100,100,100,bg) pw+=pw ph+=ph if pw>SW: pw=SW if ph>SH: ph=SH getkey=KEYP if getkey(KEY_COSINE): sleep(0.2) TEST() if pc==bg: pc=choice(['red','blue','green', 'yellow','white','gray']) # DROP=True if len(ALLSCREENPIXELS)>0: if DROP: drop_piece() if len(ALLSCREENPIXELS)>0: if ALLSCREENPIXELS[-1][1]+ALLSCREENPIXELS[-1][3]>222: ALLSCREENPIXELS[-1][1]=222-ALLSCREENPIXELS[-1][3] DROP=False if KEYP(KEY_OK): sleep(0.2) DROP+=1 if DROP>1: DROP=0 #///END////// sleep(1) STR("press [OK]",100,100) print("\n") name=input("name: ") print("bg = ",bg) if len(name)<1: print(ALLSCREENPIXELS)