void Player::tick()
{
    // Collision Detection
    bool TouchingBottom = false;
    for (int i = 0;i < m_scene->GetEntityAmount();i++)
    {
        if (m_scene->GetEntity(i) != this)
        {
            //Bottom Check
            if (m_char.getGlobalBounds().top + m_char.getGlobalBounds().height + getPosition().y >= m_scene->GetEntity(i)->GetGlobalBounds().top
                && m_char.getGlobalBounds().left + m_char.getGlobalBounds().width + getPosition().x >= m_scene->GetEntity(i)->GetGlobalBounds().left
                && m_char.getGlobalBounds().left + getPosition().x <= m_scene->GetEntity(i)->GetGlobalBounds().left + m_scene->GetEntity(i)->GetGlobalBounds().width
                && m_char.getGlobalBounds().top + m_char.getGlobalBounds().height + getPosition().y <= m_scene->GetEntity(i)->GetGlobalBounds().top + m_scene->GetEntity(i)->GetGlobalBounds().height
                )
            {
                TouchingBottom = true;
            }
        }
    }

    // Player Input
    if (Game::Get()->GetInputManager()->IsKeyDown(sf::Keyboard::Key::Up) && TouchingBottom)
        SetVelocity(GetVelocity().x, -50);
    if (Game::Get()->GetInputManager()->IsKeyPressed(sf::Keyboard::Key::Left))
        SetVelocity(-20, GetVelocity().y);
    else if (Game::Get()->GetInputManager()->IsKeyPressed(sf::Keyboard::Key::Right))
        SetVelocity(20, GetVelocity().y);
    else
        SetVelocity(0, GetVelocity().y);

    // Apply collision precautions
    if (!TouchingBottom)
        SetVelocity(GetVelocity().x, GetVelocity().y+10*Game::Get()->GetFrameTime()->asSeconds()*10); // Apply gravity
    else if (TouchingBottom && GetVelocity().y > 0)
        SetVelocity(GetVelocity().x, 0);

    // Apply frame movement
    move(GetVelocity().x * Game::Get()->GetFrameTime()->asSeconds()*10, GetVelocity().y * Game::Get()->GetFrameTime()->asSeconds()*10);
}