fun game!
You Welcome.
# Fun game by: Wilson # Contact: wilsony175@gmail.com from math import * from random import * from random import randint as R from kandinsky import * from kandinsky import fill_rect as F from kandinsky import draw_string as S from ion import * from time import * SW=322 SH=222 M=255 BLACK=(0,0,0) WHITE=(M,M,M) CYAN=(0,M,M) GRAY=(170,170,170) RED=(M,0,0) GREEN=(0,M,0) BLUE=(0,0,M) RR=R(0,M) RG=R(0,M) RB=R(0,M) bg=(R(0,M),R(0,M),R(0,M)) lava_t=0 k1_found=False k2_found=False fb_dir=choice(["up","down"]) fbx=R(50,300) fby=R(21,150) fbw=10 fbh=10 fbc=(R(120,M),20,20) reached_goal=False lavax=0 lavay=R(180,215) lavaw=SW lavah=40 lavac=(M,0,0) gx=0 gy=R(160,200) gw=SW gh=R(2,4) gc=(R(150,M),R(150,M),R(150,M)) k1x=R(10,310) k1h=10 k1y=R(10,lavay-2-k1h) k1w=5 k1c=(R(0,M),R(0,M),R(0,M)) k2h=10 k2x=R(10,310) k2y=R(10,lavay-2-k2h) k2w=5 k2c=(R(0,M),R(0,M),R(0,M)) jump_t=1 jump=False onplat=False move=True goalx=R(250,300) goalh=25 goaly=R(10,lavay-2-goalh) goalw=14 goalc=(R(0,M),R(0,M),R(0,M)) rw=R(5,12) rh=R(40,55) rc=choice([BLACK,(M,M,M),(0,M,0),(0,0,M)]) p_plat_x=R(0,100) p_plat_y=R(60,150) p_plat_w=R(30,45) p_plat_h=R(2,5) p_plat_c=rc #player size, width & height pw=12 ph=17 px=p_plat_x+int(p_plat_w/2) - int(pw/2) py=R(20,30) pc=(R(150,M),R(150,M),R(150,M)) F(0,0,SW,SH,bg) #****************************** for i in range(R(40,60),SW,R(20,40)): RY=R(50,200) RW=R(20,50) RH=R(3,8) F(i,RY,RW,RH,rc) F(i,RY,1,RH,(R(0,M),R(0,M),R(0,M))) F(i+RW-1,RY,1,RH,(R(0,M),R(0,M),R(0,M))) F(i,RY,RW,1,(R(0,M),R(0,M),R(0,M))) F(i,RY+RH-1,RW,1,(R(0,M),R(0,M),R(0,M))) #****************************** F(p_plat_x,p_plat_y,p_plat_w,p_plat_h,p_plat_c) float_platx=R(500,800) float_platy=R(0,50) float_platw=100 float_plath=2 float_platc=BLACK GAME=True life=3 score=0 level=1 def new_world(): global bg,px,py,fbc,fbx,fby,fb_dir,goalx,goaly,goalh,gw,gx,gy,k1_found,k2_found,k1c,k1x,k1y,k2c,k2x,k2y,onplat,reached_goal,life,score,level,lavax,lavay,lavaw,lavah,lavac,rc,RY,RW,RH bg=(R(0,M),R(0,M),R(0,M)) F(0,0,SW,SH,bg) goalc=(R(0,M),R(0,M),R(0,M)) rc=choice([BLACK,(M,M,M)]) lava_t=0 level+=1 life+=1 score+=R(50,100) lavay=R(190,218) fb_dir=choice(["up","down"]) goalx=R(0,300) goaly=R(22,lavay-2-goalh) goalw=14 goalh=25 goalc=(0,25,5) k1x=R(10,300) k1y=R(10,lavay-1-k1h) k2x=R(10,300) k2y=R(10,lavay-2-k2h) jump_t=1 lava_t=0 reached_goal=False jump=False onplat=False move=True k1_found=False k2_found=False k1c=(R(0,M),R(0,M),R(0,M)) k2c=(R(0,M),R(0,M),R(0,M)) rw=R(5,12) rh=R(40,55) p_plat_x=R(20,200) p_plat_y=R(60,150) p_plat_w=R(30,45) p_plat_h=R(2,5) p_plat_c=rc px=p_plat_x+int(p_plat_w/2) - int(pw/2) py=R(10,30) if px+pw<161: fbx=R(160,300) if px>=161: fbx=px+pw+R(161,300) else: fbx=px+pw+R(0,300) fby=R(21,150) #pc = player skin pc=(R(0,M),R(0,M),R(0,M)) for i in range(R(40,60),SW,R(20,40)): RY=R(50,200) RW=R(20,50) RH=R(3,8) F(i,RY,RW,RH,rc) F(i,RY,1,RH,(R(0,M),R(0,M),R(0,M))) F(i+RW-1,RY,1,RH,(R(0,M),R(0,M),R(0,M))) F(i,RY,RW,1,(R(0,M),R(0,M),R(0,M))) F(i,RY+RH-1,RW,1,(R(0,M),R(0,M),R(0,M))) F(p_plat_x,p_plat_y,p_plat_w,p_plat_h,p_plat_c) sleep(0.2) F(k1x,k1y,k1w,k1h,k1c) F(k1x,k1y,1,k1h,BLACK) F(k1x+k1w-1,k1y,1,k1h,BLACK) F(k1x,k1y,k1w,1,BLACK) F(k1x,k1y+k1h-1,k1w,1,BLACK) F(k2x,k2y,k2w,k2h,k2c) F(k2x,k2y,1,k2h,BLACK) F(k2x+k2w-1,k2y,1,k2h,BLACK) F(k2x,k2y,k2w,1,BLACK) F(k2x,k2y+k2h-1,k2w,1,BLACK) while GAME: F(lavax,lavay,lavaw,lavah,lavac) F(lavax,lavay,lavaw,2,(100,0,0)) F(px,py,pw,ph,pc) F(px+2,py+3,2,3,BLACK) F(px+7,py+3,2,3,BLACK) F(px,py,1,ph,BLACK) F(px+pw-1,py,1,ph,BLACK) F(px,py,pw,1,BLACK) F(px,py+ph-1,pw,1,(0,0,150)) #******************************** #******************************** #******************************** if move: if keydown(KEY_LEFT): F(px+pw+1,py,2,ph,bg) px-=1 if keydown(KEY_RIGHT): F(px-1,py,1,ph,bg) px+=1 if keydown(KEY_BACKSPACE): jump=True if jump and jump_t>0: F(px-1,py-2,pw+2,ph+2,bg) py-=2 jump_t-=0.02 move=True if jump_t<0: jump=False if onplat: jump_t=1 if get_pixel(px,py+ph)==lavac or py+ph>lavay: sleep(0.2) F(px,py,pw,ph,bg) F(p_plat_x,p_plat_y,p_plat_w,p_plat_h,bg) p_plat_x=R(20,200) p_plat_y=R(60,150) p_plat_w=R(30,45) p_plat_h=R(2,5) p_plat_c=rc sleep(0.15) F(p_plat_x,p_plat_y,p_plat_w,p_plat_h,rc) px=p_plat_x+int(p_plat_w/2) - int(pw/2) py=R(10,30) life-=1 if life<1: GAME=False sleep(0.4) F(0,0,SW,SH,BLACK) for i in range(px,px+pw,R(2,10)): for j in range(0,SH,R(3,15)): i+=R(-6,6) F(i,j,R(1,5),R(8,15),bg) sleep(0.7) for i in range(0,SW,R(1,1)): for j in range(0,SH,R(5,12)): c1=choice([BLACK,(100,100,100),(200,200,200),(M,M,M)]) F(i,j,R(3,6),R(5,10),c1) sleep(0.5) F(0,0,SW,SH,BLACK) draw_string("GAME OVER",100,100,(M,100,100),BLACK) sleep(0.6) draw_string("SCORE:"+str(score),100,140,(M,M,M),BLACK) if get_pixel(px+pw,py+ph)==rc: onplat=True else: onplat=False if px<0: px=0 if px+pw>320: px=320-pw if py<-8: py=-8 F(px,py,pw,ph,bg) if onplat==False: F(px-2,py-2,pw+2,2,bg) if jump==False: py+=1 if jump==True: py+=R(0,2) if fb_dir=="up": F(fbx,fby+fbh+1,fbw,1,bg) fby-=1 if fb_dir=="down": F(fbx,fby-1,fbw,1,bg) fby+=1 F(fbx,fby,fbw,fbh,fbc) F(fbx,fby,1,fbh,BLACK) F(fbx+fbw-1,fby,1,fbh,BLACK) F(fbx,fby,fbw,1,BLACK) F(fbx,fby+fbh-1,fbw,1,BLACK) if fby<10: fby=10 fb_dir="down" if fby>221: fby=221 fbx=choice([R(10,300),px+R(-60,60)]) fbw=fbh=R(8,18) fb_dir="up" F(k1x,k1y,k1w,k1h,k1c) F(k1x,k1y,1,k1h,BLACK) F(k1x+k1w-1,k1y,1,k1h,BLACK) F(k1x,k1y,k1w,1,BLACK) F(k1x,k1y+k1h-1,k1w,1,BLACK) F(k2x,k2y,k2w,k2h,k2c) F(k2x,k2y,1,k2h,BLACK) F(k2x+k2w-1,k2y,1,k2h,BLACK) F(k2x,k2y,k2w,1,BLACK) F(k2x,k2y+k2h-1,k2w,1,BLACK) F(goalx,goaly,goalw,goalh,goalc) F(goalx,goaly,2,goalh,"white") F(goalx+goalw-2,goaly,2,goalh,"white") F(goalx,goaly,goalw,3,"white") F(goalx-2,goaly+goalh-1,goalw+4,1,"white") if px+pw>=fbx and px<=fbx+fbw and py+ph>=fby and py<=fby+goalh: sleep(0.2) F(px,py,pw,ph,bg) px=5 py=20 life-=1 if px+pw>=goalx and px<=goalx+goalw and py+ph>=goaly+goalh-3 and py+ph<=goaly+goalh: onplat=True py=goaly+goalh-ph if px+pw>=goalx+2 and px<=goalx+goalw-2 and py+ph>=goaly+2 and py<=goaly+goalh-2 and k1_found and k2_found: reached_goal=True #******************************** #******************************** if reached_goal: sleep(0.2) bg=(R(0,155),R(0,155),R(0,155)) F(0,0,SW,SH,bg) F(0,0,SW,80,BLACK) F(0,80,SW,3,(0,0,M)) F(0,147,SW,3,(0,0,M)) F(0,150,SW,SH,BLACK) draw_string("Mission "+str(level)+" Complete!",60,100) sleep(2) reached_goal=False F(0,0,SW,SH,BLACK) new_world() if px+pw>=k1x+1 and px<=k1x+k1w-1 and py+ph>=k1y+1 and py<=k1y+k1h-1: sleep(0.2) F(k1x,k1y,k1w,k1h,bg) k1x=0 k1y=-20 k1_found=True if px+pw>=k2x+1 and px<=k2x+k2w-1 and py+ph>=k2y+1 and py<=k2y+k2h-1: sleep(0.2) F(k2x,k2y,k2w,k2h,bg) k2x=0 k2y=-20 k2_found=True if k1_found and k2_found: F(goalx,goaly,goalw,goalh,(0,0,100)) F(goalx,goaly,2,goalh,CYAN) F(goalx+goalw-2,goaly,2,goalh,CYAN) F(goalx,goaly,goalw,3,CYAN) F(goalx-2,goaly+goalh-1,goalw+4,1,CYAN) if keydown(KEY_OK): while not keydown(KEY_EXE): S("PAUSED",100,0) S("PAUSED",100,0,bg,bg) if lava_t>R(2,5): lavay-=choice([-1,0,1]) F(lavax,lavay-1,lavaw,1,bg) if lavay>SH: lavay=SH if lavay<180: lavay=180 lava_t+=0.0005 F(float_platx,float_platy,float_platw,float_plath,rc) F(float_platx+float_platw+1,float_platy,2,float_plath,bg) F(float_platx,float_platy+float_plath-1,float_platw,1,(0,M,M)) float_platx-=R(0,2) if float_platx+float_platw<-R(20,50): float_platx=R(350,500) float_platy=R(40,180) float_platw=R(40,80) fill_rect(fbx+int(fbw/3),fby+int(fbh/5),int(fbw/2),int(fbh/3),CYAN)