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.