local game = {}
local camera = {}
local function updateinit(gamex, camerax)
    game = gamex
    camera = camerax
end

local function update(dt)
    --update player_animation
    if spritesheets["player_die"]:getFrame() ~= 16 then
        spritesheets["player_die"]:update(dt)
    end
    if player.alive then
        spritesheets["player_jump"]:update(dt)
        spritesheets["player_walk_left"]:update(dt)
        spritesheets["player_walk_right"]:update(dt)
        spritesheets["player_idle"]:update(dt)
        spritesheets["player_default"]:update(dt)
    end

    --get keyboard
    local key = love.keyboard.isDown
    player:idle(dt)
    --move player
    if key("d") then
        player:walk_right(dt)
    elseif key("a") then
        player:walk_left(dt)
    end
    --jump player
    if key("w") then
        player:jump(dt)
        player.speed = player.speed_jumping
    else
        player.speed = player.speed_walking
    end
    if game.debug then
        if key("s") then
            player:down(dt)
            player.speed = player.speed_jumping
        else
            player.speed = player.speed_walking
        end
        if key("f") then
            --die
            player.spritesheets["player_die"]:setFrame(1)
            player:die(dt)
        elseif key("g") then
            --revive player
            player.spritesheets["player_die"]:setFrame(1)
            player:revive(dt)
        end
        if key("x") then
            print("x: \""..player.x.."\"; y: \""..player.y.."\"")
        end     
    end
    local dx,dy = (player.x - camera.x) / 2, (player.y - camera.y) / 2
    camera:move(dx, dy)
end
return {
    update = update,
    updateinit = updateinit
}