game_studio_upgraded.py

Created by wperez274

Created on April 10, 2023

10.1 KB

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)

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.