egor12.py

Created by wperez274

Created on March 28, 2023

8.46 KB

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)

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.