
# Height of the game window
HEIGHT = 400
# Width of the game window
WIDTH = 400
# Background color of the game window
BACKGROUND = colorant"purple"

# Globals to store the velocity of the actor
dx = 2
dy = 2

# Create an `Actor` object with an image
a=Actor("alien.png")

# Start playing background music
play_music("radetzky_ogg")

# The draw function is called by the framework. All we do here is draw the Actor
function draw(g::Game)
    draw(a)
end

# The update function is called every frame. Within the function, we 
# * change the position of the actor by the velocity
# * if the actor hits the edges, we invert the velocity, and play a sound 
# * if the up/down/left/right keys are pressed, we change the velocity to move the actor in the direction of the keypress 
function update(g::Game)
    global dx, dy
    a.position.x += dx
    a.position.y += dy
    if a.x > 400-a.w || a.x < 2
        dx = -dx
        play_sound("eep")
    end
    if a.y > 400-a.h || a.y < 2
        dy = -dy
        play_sound("eep")
    end

    if g.keyboard.DOWN
        dy = 2
    elseif g.keyboard.UP
        dy = -2
    elseif g.keyboard.LEFT
        dx = -2
    elseif g.keyboard.RIGHT
        dx = 2
    end


end

# If the "space" key is pressed, change the displayed image to the "hurt" variant. 
# Also schedule an event to change it back to normal after one second. 
function on_key_down(g, k)
    if k == Keys.SPACE
        alien_hurt()
        schedule_once(alien_normal, 1)
    end
end

# We define functions to change the image for the actor. These functions are called from the keydown and scheduled events. 
alien_hurt() = a.image = "alien_hurt.png"
alien_normal() = a.image = "alien.png"
