hell_v_6.py
Created by
wperez274
Created on
September 11, 2023
18.6 KB
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 *
intro = """
Egor woke up to find
himself in chaos...
*[UP],[BACKSPACE] = float (Jump)
*[Toolbox] = Menu, Pause
*[Arrows[LEFT,RIGHT]] = MOVE,
*[Arrow[DOWN]] = CROUCH.
"""
SW = 322
SH = 222
red = " red "
green = " green "
blue = " blue "
yellow = " yellow "
brown = " brown "
cyan = " cyan "
pink = " pink "
orange = " orange "
purple = " purple "
black = " black "
white = " white "
bg = ( 75 , 0 , 0 )
F ( 0 , 0 , SW , SH , bg )
x , y = 0 , 160
while y >- 80 and not KP ( KEY_OK ) and not keydown ( KEY_EXE ):
sleep ( 0.01 )
y -= RAND ( 0 , 1 )
STR ( str ( intro ), x , y , white , bg )
if y <- 380 :
y = 190
sleep ( 1 )
while not KP ( KEY_OK ) and not keydown ( KEY_EXE ) and y > - 380 :
STR ( " PRESS OK " , 0 , 140 , red , black )
MAPX = 0
MAPY = 0
GAME_OVER = False
float = 20
score = 0
life = 3
energy = 30
x = 100
y = 221 - 22
w = 12
h = 20
c = ( RAND ( 50 , 255 ), RAND ( 50 , 255 ), RAND ( 50 , 255 ))
direc = [ " left " , " right " , " up " , " down " ]
DIR = direc [ 1 ]
bg = ( 51 , 18 , 23 )
#made with "level maker studio"
level_1 = [
#area=0= home
[[ 0 , 208 , 78 , 14 , ( 176 , 157 , 217 )], [ 0 , 199 , 14 , 8 , ( 144 , 46 , 229 )], [ 126 , 200 , 32 , 22 , ( 51 , 18 , 23 )], [ 177 , 209 , 10 , 12 , ( 39 , 41 , 41 )]],
#area=1
[[ 0 , 64 , 148 , 170 , black ], [ 105 , 127 , 114 , 136 , black ], [ 162 , 181 , 28 , 40 , black ], [ 30 , 43 , 28 , 28 , black ], [ 51 , 25 , 54 , 64 , black ], [ 37 , 184 , 42 , 40 , ( 189 , 25 , 51 )], [ 13 , 100 , 24 , 28 , ( 45 , 138 , 186 )]],
#area=2
[[ 75 , 178 , 154 , 44 , ' black ' ], [ 99 , 145 , 110 , 44 , ' black ' ], [ 114 , 145 , 86 , 64 , ' red ' ], [ 236 , 85 , 86 , 64 , ' red ' ], [ 50 , 16 , 22 , 32 , ( 153 , 126 , 88 )]],
#area=3
[[ 40 , 176 , 50 , 46 , black ], [ 168 , 134 , 154 , 88 , black ], [ 202 , 86 , 120 , 88 , black ], [ 246 , 44 , 76 , 88 , black ], [ 90 , 206 , 76 , 16 , red ]],
#area=4
[[ 58 , 182 , 52 , 40 , black ], [ 172 , 144 , 24 , 78 , black ], [ 253 , 208 , 32 , 14 , black ], [ 196 , 208 , 60 , 14 , red ], [ 109 , 208 , 64 , 14 , red ]],
#area=5
[[ 61 , 212 , 50 , 10 , black ], [ 91 , 170 , 66 , 52 , black ], [ 121 , 118 , 66 , 104 , black ], [ 268 , 178 , 54 , 16 , black ], [ 186 , 206 , 136 , 16 , red ]],
#area=6
[[ 97 , 122 , 132 , 100 , black ], [ 106 , 132 , 112 , 90 , red ], [ 265 , 124 , 32 , 42 , red ], [ 64 , 212 , 32 , 8 , black ], [ 79 , 182 , 24 , 8 , black ], [ 142 , 122 , 42 , 12 , red ]],
#area=7
[[ 82 , 86 , 18 , 136 , black ],[ 190 , 86 , 18 , 136 , black ],[ 262 , 110 , 60 , 16 , black ],[ 98 , 182 , 96 , 40 , red ],[ 0 , 128 , 40 , 8 , black ],[ 51 , 170 , 40 , 8 , black ]],
#area=8
[[ 0 , 175 , 50 , 10 , black ], [ 78 , 143 , 78 , 10 , black ], [ 201 , 114 , 34 , 108 , black ], [ 201 , 0 , 30 , 62 , red ], [ 0 , 214 , 202 , 8 , red ], [ 105 , 142 , 20 , 6 , red ]],
#area=9
[[ 52 , 212 , 50 , 10 , black ], [ 97 , 161 , 50 , 10 , black ], [ 196 , 203 , 18 , 10 , black ], [ 158 , 0 , 164 , 50 , black ], [ 260 , 132 , 62 , 90 , black ], [ 104 , 216 , 156 , 6 , red ]],
#area=10
[[ 0 , 162 , 50 , 100 , black ], [ 105 , 172 , 50 , 50 , black ], [ 118 , 27 , 204 , 98 , black ], [ 54 , 210 , 194 , 12 , red ], [ 114 , 0 , 6 , 126 , red ]],
#area=11
[[ 40 , 212 , SW , 10 , red ], [ 0 , 0 , SW , 94 , black ], [ 90 , 156 , 36 , 58 , black ], [ 192 , 156 , 10 , 58 , black ], [ 264 , 204 , 58 , 8 , black ], [ 0 , 202 , 34 , 20 , black ]],
#area=12
[[ 0 , 212 , 50 , 10 , black ], [ 48 , 154 , 232 , 68 , black ], [ 66 , 91 , 188 , 68 , black ], [ 81 , 91 , 162 , 128 , red ], [ 124 , 57 , 18 , 14 , black ], [ 256 , 0 , 18 , 40 , black ]],
#area=13
[[ 86 , 212 , 236 , 10 , red ], [ 68 , 140 , 18 , 82 , black ], [ 143 , 188 , 14 , 6 , black ], [ 230 , 128 , 14 , 6 , black ], [ 246 , 62 , 76 , 6 , black ]],
#area=14
[[ 0 , 68 , 48 , 154 , black ], [ 99 , 126 , 6 , 96 , black ], [ 180 , 126 , 6 , 96 , black ], [ 244 , 0 , 78 , 168 , black ], [ 241 , 0 , 8 , 168 , red ], [ 48 , 208 , 136 , 14 , red ]],
#area=15
[[ 80 , 100 , 162 , 122 , black ], [ 87 , 93 , 26 , 8 , red ], [ 153 , 93 , 26 , 8 , red ], [ 216 , 93 , 26 , 8 , red ], [ 51 , 154 , 184 , 8 , black ], [ 82 , 140 , 6 , 82 , red ],[ 106 , 112 , 114 , 110 , ' red ' ]],
#area=16
[[ 0 , 160 , 50 , 10 , black ],[ 67 , 96 , 166 , 126 , black ], [ 97 , 96 , 40 , 125 , red ], [ 172 , 96 , 40 , 125 , red ], [ 280 , 78 , 40 , 40 , red ], [ 63 , 106 , 4 , 116 , red ]],
#area=17
[[ 0 , 148 , 50 , 10 , black ], [ 99 , 100 , 10 , 122 , black ], [ 96 , 94 , 34 , 24 , black ], [ 102 , 100 , 22 , 12 , ( 15 , 56 , 15 )], [ 112 , 206 , 158 , 16 , red ]],
#area=18
[[ 90 , 194 , 232 , 28 , black ],[ 114 , 15 , 20 , 24 , black ],[ 120 , 21 , 2 , 4 , red ],[ 126 , 21 , 2 , 4 , red ],[ 249 , 210 , 2 , 4 , red ],[ 255 , 210 , 2 , 4 , red ]],
#area=19
[[ 0 , 175 , 50 , 10 , ' black ' ],[ 82 , 42 , 18 , 180 , black ], [ 242 , 122 , 80 , 100 , black ], [ 47 , 119 , 88 , 8 , black ], [ 156 , 3 , 166 , 44 , red ], [ 102 , 178 , 140 , 44 , red ]],
#area=20
[[ 0 , 114 , 70 , 108 , ' black ' ], [ 120 , 114 , 6 , 108 , ' black ' ], [ 186 , 114 , 6 , 108 , ' black ' ], [ 276 , 74 , 46 , 148 , ' black ' ], [ 69 , 164 , 212 , 58 , ' red ' ]],
#area=21
[[ 0 , 126 , 24 , 96 , ' black ' ], [ 69 , 0 , 178 , 96 , ' black ' ], [ 27 , 220 , 114 , 2 , ' red ' ], [ 208 , 220 , 114 , 2 , ' red ' ], [ 162 , 100 , 6 , 70 , ' red ' ], [ 258 , 178 , 64 , 10 , ' black ' ]],
#area=22
[[ 0 , 212 , SW , 10 , ' black ' ], [ 0 , 0 , SW , 90 , ' black ' ], [ 67 , 156 , 46 , 52 , ' red ' ], [ 157 , 93 , 46 , 52 , ' red ' ], [ 241 , 158 , 46 , 52 , ' red ' ]],
#area=23
[[ 0 , 202 , 50 , 20 , ' black ' ], [ 54 , 202 , 268 , 20 , ' red ' ], [ 54 , 1 , 268 , 20 , ' red ' ], [ 126 , 133 , 106 , 20 , ' red ' ], [ 48 , 136 , 58 , 6 , ' black ' ], [ 256 , 103 , 66 , 6 , ' black ' ]],
#area=24
[[ 0 , 106 , 50 , 10 , ' black ' ], [ 102 , 140 , 6 , 82 , ' black ' ], [ 189 , 180 , 6 , 42 , ' black ' ], [ 132 , 0 , 6 , 122 , ' red ' ], [ 93 , 100 , 6 , 122 , ' red ' ], [ 208 , 0 , 114 , 140 , ( 102 , 39 , 44 )]],
#area=25
[[ 105 , 30 , 30 , 42 , ( 255 , 125 , 99 )], [ 225 , 30 , 30 , 42 , ( 255 , 125 , 99 )], [ 159 , 124 , 142 , 98 , ' black ' ], [ 0 , 182 , 56 , 40 , ' black ' ], [ 171 , 145 , 114 , 56 , ' red ' ], [ 97 , 114 , 20 , 60 , ' red ' ]],
#area=26
[[ 153 , 25 , 34 , 70 , ( 223 , 78 , 252 )], [ 0 , 152 , SW , 70 , ' red ' ], [ 0 , 141 , 38 , 6 , ' black ' ], [ 153 , 90 , 38 , 6 , ' black ' ], [ 282 , 48 , 38 , 6 , ' black ' ]],
#area=27
[[ 0 , 118 , 50 , 10 , ' black ' ], [ 60 , 169 , 50 , 10 , ' black ' ], [ 190 , 27 , 30 , 38 , ( 220 , 102 , 200 )], [ 223 , 184 , 6 , 38 , ' black ' ], [ 0 , 214 , SW , 8 , ' red ' ], [ 72 , 91 , 250 , 8 , ' red ' ], [ 280 , 178 , 42 , 10 , ' black ' ]],
#area=28
[[ 105 , 72 , 8 , 150 , ' red ' ], [ 150 , 0 , 8 , 150 , ' red ' ], [ 0 , 210 , SW , 12 , ' red ' ], [ 0 , 168 , 66 , 36 , black ], [ 36 , 90 , 62 , 12 , black ], [ 132 , 186 , 190 , 12 , black ]],
#area=29
[[ 0 , 166 , 54 , 10 , black ], [ 78 , 184 , 14 , 10 , black ], [ 177 , 106 , 12 , 34 , black ], [ 0 , 204 , SW , 18 , ' red ' ], [ 280 , 100 , 42 , 86 , black ], [ 118 , 15 , 22 , 40 , ( 232 , 55 , 188 )]],
#area=30
[[ 0 , 186 , 74 , 36 , ' black ' ], [ 78 , 153 , 42 , 4 , ' black ' ], [ 216 , 164 , 106 , 58 , ' black ' ], [ 74 , 200 , 154 , 22 , ' red ' ], [ 91 , 20 , 14 , 90 , ' red ' ], [ 217 , 0 , 104 , 110 , ' red ' ]],
#area=31
[[ 0 , 116 , 58 , 106 , ' black ' ], [ 0 , 0 , SW , 34 , ' black ' ], [ 57 , 212 , 226 , 10 , ' red ' ], [ 33 , 116 , 16 , 16 , ' red ' ], [ 162 , 185 , 12 , 16 , ' black ' ], [ 102 , 74 , 6 , 84 , ' red ' ]],
#area=32
[[ 0 , 212 , SW , 10 , ' black ' ], [ 87 , 208 , 34 , 14 , ' red ' ], [ 153 , 208 , 132 , 14 , ' red ' ], [ 228 , 112 , 94 , 14 , ' black ' ], [ 313 , 0 , 6 , SH , ' red ' ], [ 202 , 33 , 50 , 12 , ' black ' ]],
#area=33
[[ 196 , 0 , 18 , SH , ' red ' ], [ 304 , 0 , 18 , SH , ' red ' ], [ 214 , 212 , 74 , 10 , ' black ' ], [ 250 , 104 , 56 , 10 , ' black ' ], [ 214 , 20 , 56 , 10 , ' black ' ], [ 43 , 23 , 22 , 34 , ( 254 , 107 , 249 )]],
#area=34
[[ 0 , 108 , 216 , 114 , ' black ' ], [ 198 , 108 , 22 , 114 , ' red ' ], [ 0 , 0 , 26 , 108 , ' red ' ], [ 0 , 0 , SW , 26 , ' black ' ], [ 276 , 201 , 46 , 12 , ' black ' ], [ 310 , 30 , 12 , 106 , ' red ' ]],
#area=35
[[ 0 , 188 , 66 , 34 , ' black ' ], [ 228 , 188 , 8 , 34 , ' black ' ], [ 111 , 39 , 22 , 34 , ( 8 , 102 , 200 )], [ 195 , 39 , 22 , 34 , ( 8 , 102 , 200 )], [ 68 , 214 , 254 , 8 , ' red ' ], [ 238 , 127 , 84 , 8 , ' black ' ]],
#area=36
[[ 0 , 116 , 50 , 106 , ' black ' ], [ 0 , 0 , SW , 20 , ' black ' ], [ 0 , 166 , 104 , 56 , ' black ' ], [ 188 , 194 , 134 , 28 , ' black ' ], [ 214 , 66 , 108 , 156 , ' black ' ], [ 139 , 33 , 6 , 156 , ' red ' ]],
#area=37
[[ 0 , 66 , 196 , 156 , ' black ' ], [ 48 , 66 , 38 , 156 , ' red ' ], [ 228 , 0 , 38 , 156 , ' red ' ], [ 131 , 64 , 64 , 158 , ' red ' ], [ 192 , 204 , 38 , 18 , ' red ' ], [ 225 , 204 , 14 , 18 , ' black ' ],[ 296 , 112 , 26 , 110 , ' black ' ], [ 278 , 180 , 24 , 42 , ' black ' ]],
#area=38
[[ 0 , 148 , SW , 74 , ( 45 , 65 , SH )], [ 57 , 10 , 26 , 44 , ( 183 , 16 , 235 )], [ 171 , 10 , 26 , 44 , ( 183 , 16 , 235 )], [ 0 , 142 , 50 , 80 , ' black ' ], [ 264 , 100 , 58 , 122 , ' black ' ], [ 226 , 0 , 96 , 44 , ' black ' ]],
#area=39
[[ 0 , 206 , 66 , 16 , ' black ' ], [ 96 , 113 , 66 , 16 , ' black ' ], [ 256 , 68 , 66 , 16 , ' black ' ], [ 64 , 214 , 258 , 8 , ' red ' ], [ 0 , 0 , 176 , 46 , ' black ' ]],
#area=40
[[ 0 , 84 , SW , 138 , ' black ' ]],
#area=41
[[ 0 , 84 , SW , 138 , ' black ' ]],
#area=42
[[ 0 , 160 , 74 , 2 , ' black ' ], [ 242 , 126 , 80 , 96 , ' black ' ], [ 0 , 216 , 244 , 6 , ' red ' ], [ 42 , 81 , 244 , 6 , ' red ' ], [ 135 , 57 , 12 , 80 , ' red ' ], [ 96 , 142 , 12 , 80 , ' red ' ]],
#area=43
[[ 0 , 115 , 50 , 10 , ' black ' ], [ 0 , 0 , SW , 38 , ' black ' ], [ 0 , 184 , SW , 38 , ( 202 , 182 , 78 )]],
#area=44
[[ 0 , 184 , SW , 38 , ( 253 , 155 , 51 )], [ 94 , 49 , 180 , 2 , ' white ' ], [ 0 , 181 , SW , 6 , ( 6 , 129 , 36 )]],
#area=45
[[ 0 , 188 , SW , 34 , ( 200 , 156 , 89 )], [ 0 , 179 , SW , 10 , ( 147 , 108 , 19 )], [ 87 , 38 , 50 , 10 , ' white ' ], [ 111 , 32 , 38 , 10 , ' white ' ], [ 252 , 14 , 38 , 10 , ' white ' ]],
#area=46
[[ 0 , 192 , 66 , 30 , ( 181 , 167 , 14 )], [ 0 , 186 , 66 , 10 , ( 139 , 172 , 15 )], [ 188 , 125 , 134 , 10 , ( 15 , 56 , 15 )], [ 196 , 134 , 126 , 88 , ( 41 , 38 , 14 )], [ 28 , 20 , 48 , 8 , ' white ' ], [ 46 , 14 , 48 , 8 , ' white ' ]],
#area=46
[[ 0 , 136 , 66 , 10 , ( 15 , 56 , 15 )], [ 0 , 146 , 54 , 76 , ( 89 , 85 , 32 )], [ 198 , 90 , 36 , 132 , ( 89 , 85 , 32 )], [ 189 , 78 , 52 , 14 , ( 15 , 56 , 15 )], [ 270 , 114 , 52 , 14 , ( 15 , 56 , 15 )]],
#area=47
[[ 0 , 128 , 234 , 94 , ( 248 , 134 , 38 )], [ 0 , 117 , 236 , 12 , ( 48 , 98 , 48 )], [ 210 , 15 , 36 , 12 , ' white ' ], [ 195 , 21 , 36 , 12 , ' white ' ], [ 57 , 0 , 36 , 12 , ' white ' ]],
#area=48
[[ 0 , 100 , 80 , 122 , ( 251 , 183 , 14 )], [ 0 , 88 , 92 , 14 , ( 15 , 56 , 15 )], [ 105 , 133 , 92 , 14 , ( 15 , 56 , 15 )], [ 171 , 187 , 92 , 14 , ( 15 , 56 , 15 )], [ 78 , 208 , 244 , 14 , ( 15 , 56 , 15 )]],
#area=49
[[ 0 , 212 , SW , 10 , ( 15 , 56 , 15 )], [ 115 , 50 , 44 , 14 , ' white ' ], [ 127 , 47 , 44 , 14 , ' white ' ], [ 142 , 41 , 44 , 14 , ' white ' ], [ 260 , 77 , 38 , 14 , ' white ' ], [ 18 , 65 , 36 , 8 , ' white ' ]],
#area=50
[[ 0 , 156 , 76 , 66 , ( 34 , 138 , 90 )], [ 0 , 150 , 86 , 8 , ( 11 , 202 , 24 )], [ 76 , 214 , 246 , 8 , ( 11 , 202 , 24 )], [ 240 , 61 , 82 , 8 , ( 11 , 202 , 24 )], [ 252 , 69 , 70 , 144 , ( 85 , 135 , 105 )]],
#area=51
[[ 63 , 42 , 38 , 18 , ' white ' ], [ 78 , 51 , 38 , 18 , ' white ' ], [ 225 , 51 , 40 , 8 , ' white ' ], [ 207 , 48 , 40 , 8 , ' white ' ], [ 126 , 102 , 22 , 120 , ( 198 , 145 , 40 )], [ 99 , 63 , 78 , 86 , ( 139 , 172 , 15 )]],
#area=52
[[ 0 , 212 , 88 , 10 , ( 44 , 237 , 4 )], [ 87 , 216 , 176 , 6 , ( 83 , 76 , 192 )], [ 263 , 202 , 56 , 20 , ( 121 , 174 , 90 )], [ 161 , 40 , 56 , 20 , ' white ' ], [ 125 , 28 , 56 , 20 , ' white ' ], [ 5 , 76 , 56 , 20 , ' white ' ]],
#area=53
[[ 0 , 216 , SW , 6 , ( 90 , 208 , 41 )], [ 87 , 210 , 134 , 10 , ( 90 , 208 , 41 )], [ 138 , 98 , 16 , 112 , ( 245 , 227 , 104 )], [ 102 , 71 , 94 , 74 , ( 48 , 98 , 48 )], [ 268 , 75 , 54 , 12 , ' white ' ], [ 28 , 15 , 54 , 12 , ' white ' ]],
#end
[[ 184 , 0 , 138 , SH , ' black ' ], [ 241 , 141 , 48 , 76 , ( 132 , 49 , 251 )], [ 208 , 56 , 22 , 44 , ( 162 , 78 , 163 )], [ 274 , 56 , 22 , 44 , ( 162 , 78 , 163 )], [ 82 , 150 , 102 , 72 , ( 73 , 71 , 134 )]]
]
health = energy
tools = []
def drawmenu ():
global life , energy , tools
F ( 0 , 0 , SW , SH , black )
panel = [
[ 50 , 50 , 254 , 166 , black ], [ 6 , 9 , 236 , 148 , ( 243 , 223 , 225 )]
]
for i in panel :
F ( * i )
while not KP ( KEY_LEFT ):
STR ( " Life: " + str ( round ( life )), 20 , 20 )
STR ( " Energy: " + str ( energy ), 20 , 50 )
STR ( " Tools: " + str ( tools ), 20 , 80 )
STR ( " PRESS LEFT TO RESUME JOURNEY " , 6 , 200 , orange , black )
F ( 0 , 0 , SW , SH , bg )
#******************
#starting point
area = 1
#******************
#******************
for i in level_1 [ area ]:
F ( * i )
def refresh_level ():
F ( 0 , 0 , SW , SH , bg )
for i in level_1 [ area ]:
F ( * i )
fb_dir = " still "
fb_x = 0
fb_y = 0
fb_w = 16
fb_h = 16
fb_c = red
fb_dir = choice ([ " up " , " down " ])
fb_x = 150
fb_y = 20
fb_w = 16
fb_h = 16
fb_c = red
def move_fb ():
global fb_dir , fb_x , fb_y
if fb_dir == " up " :
F ( fb_x , fb_y + fb_h + 1 , fb_w , 1 , bg )
fb_y -= 1
if fb_dir == " down " :
F ( fb_x , fb_y - 1 , fb_w , 1 , bg )
fb_y += 1
if fb_y < 0 :
fb_y = 0
fb_dir = " down "
if fb_y + fb_h > SH :
fb_y = SH - fb_h
fb_dir = " up "
fb_dir = choice ([ " up " , " down " ])
crit_time = 0
crit_dir = choice ([ " left " , " right " , " up " , " down " ])
crit_w = RAND ( 12 , 18 )
crit_h = RAND ( 10 , 12 )
crit_c = ( RAND ( 0 , 60 ), RAND ( 0 , 60 ), RAND ( 0 , 60 ))
critt_c2 = ( RAND ( 0 , 25 ), RAND ( 0 , 255 ), RAND ( 0 , 255 ))
critt_eyes_c = ( RAND ( 0 , 25 ), RAND ( 0 , 255 ), RAND ( 0 , 255 ))
for i in level_1 [ area ]:
crit_x = i [ 0 ] + RAND ( 4 , 10 )
crit_y = i [ 1 ] - crit_h
def move_critt ():
global crit_dir , crit_x , crit_y , crit_time , bg , area
if crit_dir == " left " :
F ( crit_x + crit_w + 1 , crit_y , 2 , crit_h , bg )
F ( crit_x - 2 , crit_y , 2 , crit_h , bg )
F ( crit_x , crit_y + crit_h + 1 , crit_w , 2 , bg )
F ( crit_x , crit_y - 2 , crit_w , 2 , bg )
crit_x -= 2
if crit_dir == " right " :
F ( crit_x + crit_w + 1 , crit_y , 2 , crit_h , bg )
F ( crit_x - 2 , crit_y , 2 , crit_h , bg )
F ( crit_x , crit_y + crit_h + 1 , crit_w , 2 , bg )
F ( crit_x , crit_y - 2 , crit_w , 2 , bg )
crit_x += 2
if crit_dir == " up " :
F ( crit_x + crit_w + 1 , crit_y , 2 , crit_h , bg )
F ( crit_x - 2 , crit_y , 2 , crit_h , bg )
F ( crit_x , crit_y + crit_h + 1 , crit_w , 2 , bg )
F ( crit_x , crit_y - 2 , crit_w , 2 , bg )
crit_y -= 2
if crit_dir == " down " :
F ( crit_x + crit_w + 1 , crit_y , 2 , crit_h , bg )
F ( crit_x - 2 , crit_y , 2 , crit_h , bg )
F ( crit_x , crit_y + crit_h + 1 , crit_w , 2 , bg )
F ( crit_x , crit_y - 2 , crit_w , 2 , bg )
crit_y += 2
crit_time += 0.01
if crit_time > RAND ( 1 , 3 ):
crit_time = 0
F ( crit_x - 2 , crit_y - 2 , crit_w + 4 , crit_h + 4 , bg )
crit_dir = choice ([ " left " , " right " , " up " , " down " ])
if area > 30 :
if crit_x > x and crit_time < 0.4 :
crit_dir = " left "
if crit_x < x and crit_time < 0.4 :
crit_dir = " right "
if crit_y > y and crit_time < 0.4 :
crit_dir = " up "
if crit_y < y and crit_time < 0.4 :
crit_dir = " down "
if crit_x < 0 :
crit_x = 0
crit_dir = choice ([ " right " , " up " , " down " ])
if crit_x + crit_w > SW :
crit_x = SW - crit_w
crit_dir = choice ([ " left " , " up " , " down " ])
if crit_y <= 0 :
crit_y = 0
crit_dir = choice ([ " down " , " left " , " right " ])
if crit_y + crit_h >= SH :
crit_y = SH - crit_h
crit_dir = choice ([ " up " , " left " , " right " ])
dark_red = ( 30 , 0 , 0 )
skull_x = 0
skull_y =- 35
skull_w = 34
skull_h = 38
skull_c = dark_red
def skull ():
global skull_x , skull_y , skull_w , skull_h , bg
F ( skull_x + 0 , skull_y + 13 , 34 , 14 , dark_red )
F ( skull_x + 5 , skull_y + 6 , 24 , 30 , dark_red )
F ( skull_x + 9 , skull_y + 3 , 16 , 38 , dark_red )
F ( skull_x + 9 , skull_y + 21 , 4 , 4 , ( RAND ( 0 , 255 ), 0 , 0 ))
F ( skull_x + 21 , skull_y + 21 , 4 , 4 , ( RAND ( 0 , 255 ), 0 , 0 ))
F ( skull_x + 0 + 34 + 1 , skull_y + 13 , 1 , 14 , bg )
F ( skull_x + 5 + 24 + 1 , skull_y + 6 , 1 , 30 , bg )
F ( skull_x + 9 + 16 + 1 , skull_y + 3 , 1 , 38 , bg )
F ( skull_x + 0 + 34 - 3 , skull_y + 13 , 3 , 14 , ( 75 , 0 , 0 ))
F ( skull_x + 5 + 24 - 1 , skull_y + 6 , 1 , 30 , ( 75 , 0 , 0 ))
F ( skull_x + 9 + 16 - 2 , skull_y + 3 , 2 , 38 , ( 75 , 0 , 0 ))
skull_x -= 1
if skull_x + skull_w <- 20 :
skull_x = RAND ( 350 , 500 )
skull_y = choice ([ y + RAND ( - 40 , - 20 ), RAND ( 0 , 150 )])
y = 30
pstill = False
while not GAME_OVER :
F ( x , y , w , h , c )
if area > 5 :
F ( crit_x , crit_y , crit_w , crit_h , crit_c )
F ( crit_x + 4 , crit_y + 4 , 2 , 2 , critt_eyes_c )
F ( crit_x + 10 , crit_y + 4 , 2 , 2 , critt_eyes_c )
F ( crit_x , crit_y , 1 , crit_h , critt_c2 )
F ( crit_x + crit_w - 1 , crit_y , 1 , crit_h , critt_c2 )
F ( crit_x , crit_y , crit_w , 1 , critt_c2 )
F ( crit_x , crit_y + crit_h - 1 , crit_w , 1 , critt_c2 )
move_critt ()
move_fb ()
F ( fb_x , fb_y , fb_w , fb_h , fb_c )
F ( fb_x + 2 , fb_y + 2 , fb_w - 4 , fb_h - 4 ,( RAND ( 0 , 255 ), 0 , 0 ))
F ( x + 3 , y + 3 , 4 , 3 , black )
F ( x + 9 , y + 3 , 4 , 3 , black )
if KP ( KEY_LEFT ) and not pstill :
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 > 0 or keydown ( KEY_BACKSPACE ) and float > 0 :
y -= 2
F ( x + w + 1 , y , 1 , h , bg )
float -= 0.3
F ( x , y + h + 1 , w , 1 , bg )
for i in level_1 [ area ]:
if x + w > i [ 0 ] and x < i [ 0 ] + i [ 2 ] and y + h > i [ 1 ] and y < i [ 1 ] + i [ 3 ] and i [ - 1 ] == red :
sleep ( 0.2 )
F ( x , y , w , h , bg )
life -= 1
fb_x = RAND ( 150 , 300 )
x = 40
y = 30
float = 40
for i in level_1 [ area ]:
if x + w > i [ 0 ] and x < i [ 0 ] + i [ 2 ] and y + h > i [ 1 ] and y + h < i [ 1 ] + 2 :
float = 0
y -= 1
float = 40
for i in level_1 [ area ]:
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 level_1 [ area ]:
F ( * i )
if get_pixel ( x , y + h ) != black and get_pixel ( x + w , y + h ) != black or get_pixel ( x , y + h ) != white and get_pixel ( x + w , y + h ) != white :
sleep ( 0.001 )
y += 1
F ( x - 1 , y - 1 , w + 2 , 1 , bg )
if get_pixel ( x , y + h ) == black and get_pixel ( x + w , y + h ) == black :
float = 20
if x > 321 :
sleep ( 0.2 )
score += RAND ( 50 , 100 )
life += 0.2
fill_rect ( 0 , 0 , SW , SH , black )
sleep ( 0.1 )
fill_rect ( 0 , 0 , SW , SH , bg )
area += 1
skull_x = RAND ( 350 , 500 )
skull_y = choice ([ y + RAND ( - 40 , - 20 ), RAND ( 0 , 150 )])
critt_c2 = ( RAND ( 0 , 25 ), RAND ( 0 , 255 ), RAND ( 0 , 255 ))
critt_eyes_c = ( RAND ( 0 , 25 ), RAND ( 0 , 255 ), RAND ( 0 , 255 ))
x = 0
if area > 5 :
fb_x = RAND ( 50 , 300 )
fb_y = RAND ( 0 , 170 )
fb_w = fb_h = RAND ( 12 , 20 )
crit_x = RAND ( 150 , 300 )
crit_y = RAND ( 15 , 200 )
crit_w = RAND ( 12 , 18 )
crit_h = RAND ( 10 , 12 )
crit_c = ( RAND ( 0 , 60 ), RAND ( 0 , 60 ), RAND ( 0 , 60 ))
for i in level_1 [ area ]:
F ( * i )
if life < 1 :
sleep ( 0.4 )
for i in range ( 0 , SW , 3 ):
for j in range ( 0 , SH , 3 ):
sleep ( 0.00051 )
F ( i , j , 10 , 10 ,( RAND ( 0 , 255 ), 0 , 0 ))
sleep ( 1 )
F ( 0 , 0 , SW , SH , black )
sleep ( 1 )
STR ( " GAME OVER " , 100 , 80 ,( 255 , 0 , 0 ), black )
sleep ( 1 )
STR ( " SCORE: " + str ( score ), 100 , 140 , white , black )
sleep ( 1 )
GAME_OVER = True
if x < 0 and area > 1 :
x = 0
if x < 0 and area == 1 :
x = 321
area -= 1
refresh_level ()
if y < 0 and area < 32 :
y = 0
if y < 0 and x > 250 and area == 32 :
y = SH
area += 1
crit_x = RAND ( 200 , 300 )
crit_y = RAND ( 10 , 150 )
fb_x = RAND ( 0 , 150 )
fb_y = RAND ( 50 , 160 )
skull_x = RAND ( 500 , 700 )
skull_y = RAND ( 20 , 100 )
refresh_level ()
if y < 0 and x > 250 and area == 33 :
y = SH
area += 1
crit_x = RAND ( 200 , 300 )
crit_y = RAND ( 10 , 150 )
fb_x = RAND ( 0 , 150 )
fb_y = RAND ( 50 , 160 )
skull_x = RAND ( 500 , 700 )
skull_y = RAND ( 20 , 100 )
refresh_level ()
if KP ( KEY_TOOLBOX ):
drawmenu ()
refresh_level ()
for i in level_1 [ area ]:
if fb_x + fb_w > i [ 0 ] and fb_x < i [ 0 ] + i [ 2 ] and fb_y + fb_h > i [ 1 ] and fb_y < i [ 1 ] + i [ 3 ]:
fb_dir = choice ([ " up " , " down " ])
if x + w > crit_x and x < crit_x + crit_w and y + h > crit_y and y < crit_y + crit_h :
sleep ( 0.01 )
F ( x , y , w , h , crit_c )
energy -= 1
if x + w > skull_x and x < skull_x + skull_w and y + h > skull_y and y < skull_y + skull_h :
sleep ( 0.01 )
F ( x , y , w , h ,( 100 , 0 , 0 ))
energy -= 2
if energy < 0 :
energy = 30
life -= 1
sleep ( 0.2 )
F ( x , y , w , h , bg )
x = 40
y = 30
float = 40
if x + w > fb_x and x < fb_x + fb_w and y + h > fb_y and y < fb_y + fb_h :
sleep ( 0.2 )
F ( x , y , w , h , bg )
fb_x = RAND ( 100 , 250 )
fb_y = RAND ( 20 , 150 )
crit_x = RAND ( 150 , 300 )
crit_y = RAND ( 15 , 200 )
life -= 1
x = 40
y = 30
float = 40
F ( fb_x , fb_y , fb_w , fb_h , fb_c )
F ( fb_x + 2 , fb_y + 2 , fb_w - 4 , fb_h - 4 ,( RAND ( 0 , 255 ), 0 , 0 ))
if KP ( KEY_DOWN ):
F ( x , y - 10 , w , 10 , bg )
h = 10
else :
h = 20
if y + h > SH :
y = SH - h
float = 30
if y > SH :
y = 0
area = 0
float = 30
if area > 10 :
skull ()
if KP ( KEY_ZERO ):
refresh_level ()
STR ( str ( area ), 250 , 1 , green , black )
if area == 17 :
F ( 102 , 100 , 22 , 12 ,( 0 , RAND ( 0 , 155 ), 0 ))
F ( 104 , 120 , 2 , 2 ,( RAND ( 0 , 255 ), 0 , 0 ))
if area > 47 :
bg = cyan
fb_x = 0
fb_y =- 25
crit_x = 0
crit_y =- 45
skull_x = 0
skull_y =- 100
if area == 0 :
if x < 0 :
x = 0
print ( " Score: " , score )
print ( " Area Reached: " , area )
print ( " Player Color: " , c )
print ( " Player Height: " , h )
print ( " Player Width: " , w )