Level Maker. Copy & Paste the Data ( List of objects ).
I just started a simple game called “hell.py” and I used this script.
Have fun.
guide =""" [Backspace]=Set shape [VAR]=Undo Last object. [COSINE]=Test Game Level. [POWER^y]=DROP [EXE]=EXIT & Print Data of [OK]= HELP/GUIDE ------------------ Hold [SHIFT] to go fast with shape change. [(]=Decrease Width [)]=Increase Width [*]=Decrease Height [/]=Increase Height ------------------- Hold [ Sq ] to go fast while moving. [Toolbox]=iterating colors [3]=RANDOM COLORS [7]=Red [8]=iterating color list [.]=BACKGROUND WHITE [x10^]=BACKGROUND BLACK """ #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 KP from kandinsky import draw_string as STR from ion import * from time import * M=255 MAPX=0 MAPY=0 SW=322 SH=222 pallete=[ (240, 143, 0),(0,255,255), (255,255,0),(132,208,125), (39,41,41),(196,190,187), (73,71,134),(154,34,87), (15,56,15),(48,98,48), (139,172,15),(155,188,15) ] #keep this at 1 sel=1 sketch_mode=False TEST_ON=False bg=(255,)*3 pixels_captured=0 faston=False 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=(150,)*3 RED=(155,0,0) GREEN=(0,155,0) BLUE=(0,0,155) penup=False pendown=True px=40 py=100 pc=BLACK pw=50 ph=10 ALLSCREENPIXELS=[] ########################### # TO EDIT A LEVEL, # PASTE DATA BELOW HERE!! # level to edit edited_bg=[0,0,0] 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 PXYWHCSET=[px,py,pw,ph,pc] edited_n=[] TESTMODE=False def TEST(): global ALLSCREENPIXELS,refresh_level,bg,px,py,pw,ph,pc,EXIT GAME_OVER=False float_energy=30 score=0 life=3 x=150 y=30 w=RAND(12,16) h=RAND(10,20) c=(RAND(0,255),RAND(0,255),RAND(0,255)) direc=["left","right","up","down"] F(0,0,322,222,bg) for i in ALLSCREENPIXELS: F(*i) while not GAME_OVER and not KP(KEY_NINE) and not EXIT: draw_string("PRESS [9] TO EXIT TEST MODE",20,1,GREEN,BLACK) F(2,21,int(float_energy),10,(155,0,0)) F(x,y,w,h,c) F(x+3,y+3,4,3,BLACK) F(x+9,y+3,4,3,BLACK) if KP(KEY_LEFT): x-=1 F(x+w+1,y,1,h,bg) if KP(KEY_RIGHT): x+=1 F(x-1,y,1,h,bg) if KP(KEY_UP) and float_energy>0 or keydown(KEY_BACKSPACE) and float_energy>0: y-=2 F(x+w+1,y,1,h,bg) F(230,4,int(float_energy),13,bg) float_energy-=0.4 F(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) F(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 TEST_ON=False refresh_level() if KP(KEY_EXE): TESTMODE=False EXIT=True F(0,0,322,222,(0,0,0)) STR("PRESS OK",100,140,CYAN,BLACK) 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 F(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 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) def draw_edited_level(): global edited_level,edited_bg,SW,SH for i in edited_level: F(*i) def refresh_level(): global ALLSCREENPIXELS,bg,SW,SH,TEST if TEST_ON==False: F(0,0,SW,SH,bg) for i in ALLSCREENPIXELS: F(*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 EXIT=False F(0,0,SW,SH,bg) while not KP(KEY_EXE) and not EXIT: F(px,py,pw,ph,pc) PXYWHCSET=[px,py,pw,ph,pc] if KP(KEY_LOG): print_data() if KP(KEY_LEFT): px-=3 if KP(KEY_RIGHT): px+=3 if KP(KEY_UP): py-=3 if KP(KEY_DOWN): py+=3 #********************************* #set object if KP(KEY_BACKSPACE): sleep(0.2) ALLSCREENPIXELS.append(PXYWHCSET) STR("[P]:"+str(len(ALLSCREENPIXELS)),200,1,CYAN,BLACK) #********************************* if KP(KEY_THREE): sleep(0.2) pc=(RAND(0,M),RAND(0,M),RAND(0,M)) F(px,py,pw,ph,pc) if KP(KEY_SIX): sleep(0.2) TEST() if KP(KEY_SEVEN): sleep(0.2) pc=(255,0,0) if KP(KEY_EIGHT): sleep(0.2) pc=choice(pallete) F(px,py,pw,ph,pc) if KP(KEY_ANS): sleep(0.2) cursx=20 cursy=120 F(0,0,SW,SH,BLACK) while not KP(KEY_OK): STR("Press [OK] ",20,0) if len(ALLSCREENPIXELS)>=0: STR(str(ALLSCREENPIXELS),cursx,cursy,GREEN,BLACK) if KP(KEY_LEFT): F(200,1,122,20,WHITE) if len(ALLSCREENPIXELS)<10: cursx-=2 if len(ALLSCREENPIXELS)>=10: cursx-=5 if KP(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 KP(KEY_LEFTPARENTHESIS): pw-=2 F(px,py,pw,ph,pc) if KP(KEY_SHIFT): pw-=6 if sketch_mode==False: refresh_level() if KP(KEY_RIGHTPARENTHESIS): pw+=2 F(px,py,pw,ph,pc) if KP(KEY_SHIFT): pw+=6 if sketch_mode==False: refresh_level() if KP(KEY_MULTIPLICATION): ph-=2 F(px,py,pw,ph,pc) if KP(KEY_SHIFT): ph-=6 if sketch_mode==False: refresh_level() if KP(KEY_DIVISION): ph+=2 if KP(KEY_SHIFT): ph+=6 if sketch_mode==False: refresh_level() if KP(KEY_PLUS): pw-=2 ph-=2 F(px,py,pw,ph,pc) if KP(KEY_SHIFT): pw-=6 ph-=6 if sketch_mode==False: refresh_level() if KP(KEY_MINUS): F(px,py,pw,ph,pc) pw+=2 ph+=2 if KP(KEY_SHIFT): pw+=6 ph+=6 if sketch_mode==False: refresh_level() if pw<2: pw=2 if ph<2: ph=2 if pixels_captured<0: pixels_captured=0 if KP(KEY_DOT): bg=WHITE refresh_level() if KP(KEY_LEFT) or KP(KEY_RIGHT) or KP(KEY_UP) or KP(KEY_DOWN): refresh_level() if KP(KEY_ZERO): sleep(0.2) bg=(RAND(0,M),RAND(0,M),RAND(0,M)) refresh_level() if KP(KEY_EXP): sleep(0.2) edited_level_on=True draw_edited_level() if KP(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 KP(KEY_LEFT): if KP(KEY_SQUARE): px-=8 if sketch_mode==False: refresh_level() if KP(KEY_RIGHT): if KP(KEY_SQUARE): px+=8 if sketch_mode==False: refresh_level() if KP(KEY_UP): if KP(KEY_SQUARE): py-=8 if sketch_mode==False: refresh_level() if KP(KEY_DOWN): if KP(KEY_SQUARE): py+=8 if sketch_mode==False: refresh_level() # pop last piece if KP(KEY_VAR): if len(ALLSCREENPIXELS)>0: sleep(0.2) del ALLSCREENPIXELS[-1] refresh_level() if KP(KEY_LOG): TESTMODE==True if TESTMODE: TEST() if KP(KEY_TANGENT) or KP(KEY_BACKSPACE): STR("[P]:"+str(len(ALLSCREENPIXELS)),200,1,CYAN,BLACK) if KP(KEY_LEFTPARENTHESIS): F(px+pw-1,py,1,ph,CYAN) F(px+pw+1,py,2,ph,bg) if KP(KEY_MULTIPLICATION): F(px,py+ph-1,pw,1,CYAN) F(px,py+ph+1,pw,2,bg) if KP(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 KP(KEY_TOOLBOX): sleep(0.2) pc=choice(['blue','red', 'green','yellow','brown', 'black','white','pink', 'orange','purple','gray', "cyan" ]) if pw>SW: pw=SW if ph>SH: ph=SH if pc==bg: pc=(RAND(0,255),RAND(0,255),RAND(0,255)) 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 KP(KEY_POWER): sleep(0.2) DROP+=1 if DROP>1: DROP=0 if KP(KEY_OK): F(0,0,SW,SH,WHITE) x,y=0,160 while y>-380 and not KP(KEY_LEFT): y-=RAND(0,1) STR(str(guide),x,y) if y<-380: y=190 refresh_level() if KP(KEY_FIVE): sleep(0.2) pc=BLACK if KP(KEY_EE): sleep(0.2) bg=BLACK refresh_level() # F(px,py,pw,ph,pc) #************* #///END////// sleep(1) STR("press [OK]",100,100) print("\n") name=input("name: ") print("bg = ",bg) if len(ALLSCREENPIXELS)>6: for i in ALLSCREENPIXELS: print(i) print(ALLSCREENPIXELS)