sleeping dragons
import pgzrun
import math
WIDTH = 800
HEIGHT = 600
CENTER_X = WIDTH / 2
CENTER_Y = HEIGHT / 2
CENTER = (CENTER_X, CENTER_Y)
FONT_COLOR = (0, 0, 0)
EGG_TARGET = 30
HERO_START = (200, 300)
HERO2_START = (300, 200)
ATTACK_DISTACE = 100
DRAGON_WAKE_TIME = 2
MOVE_DISTANCE = 5
MOVE_DISTANCE2 = 10
EGG_HIDE_TIME = 3
lives = 12
eggs_collected = 0
game_over = False
game_complete = False
reset_required = False
easy_lair = {
"dragon" : Actor("dragon-asleep", pos = (770, 100)),
"eggs" : Actor("one-egg", pos = (640, 100)),
"egg_count" : 1,
"egg_hidden" : False,
"egg_hide_counter" :0,
"sleep_length" : 10,
"sleep_counter" : 0,
"wake_counter" : 0
}
medium_liar = {
"dragon" : Actor("dragon-asleep", pos = (580, 300)),
"eggs" : Actor("two-eggs", pos = (450, 300)),
"egg_count" : 2,
"egg_hidden" : False,
"egg_hide_counter" :0,
"sleep_length" : 7,
"sleep_counter" : 0,
"wake_counter" : 0
}
hard_liar = {
"dragon" : Actor("dragon-asleep", pos = (390, 500)),
"eggs" : Actor("three-eggs", pos = (260, 500)),
"egg_count" : 3,
"egg_hidden" : False,
"egg_hide_counter" :0,
"sleep_length" : 1,
"sleep_counter" : 0,
"wake_counter" : 0
}
liars = [easy_lair, medium_liar, hard_liar]
hero = Actor("hero", pos = HERO_START)
hero2 = Actor("hero2", pos = HERO2_START)
def draw() :
global liars, eggs_collected, lives, game_complect
screen.clear()
screen.blit("dungeon", (0, 0))
if game_over :
screen.draw.text("GAME OVER!", fontsize=60, center=CENTER, color=FONT_COLOR)
elif game_complete :
screen.draw.text("YOU WON!", fontsize=60, center=CENTER, color=FONT_COLOR)
else :
hero.draw()
hero2.draw()
draw_liars(liars)
draw_counters(eggs_collected, lives)
def draw_liars(liars_to_draw) :
for liar in liars_to_draw :
liar["dragon"].draw()
if liar["egg_hidden"] is False :
liar["eggs"].draw()
def draw_counters(eggs_counted, lives) :
screen.blit("egg-count", (0, HEIGHT - 30))
screen.draw.text(str(eggs_collected),
fontsize = 40,
pos = (30, HEIGHT - 30),
color = FONT_COLOR)
screen.blit("life-count", (60, HEIGHT - 30))
screen.draw.text(str(lives),
fontsize = 40,
pos = (90, HEIGHT - 30),
color = FONT_COLOR)
def update() :
if keyboard.right :
hero.x += MOVE_DISTANCE
if hero.x > WIDTH :
hero.x = WIDTH
if keyboard.left :
hero.x -= MOVE_DISTANCE2
if hero.x < 0 :
hero.x = 0
if keyboard.down :
hero.y += MOVE_DISTANCE
if hero.y > HEIGHT :
hero.y = HEIGHT
if keyboard.up :
hero.y -= MOVE_DISTANCE
if hero.y < 0 :
hero.y = 0
update2()
check_for_collision()
Leave a comment
Log in with itch.io to leave a comment.