@Override
    public void keyPressed(KeyEvent keyEvent) {
        Rectangle rect = this.getBounds();
        int xDirection = 0, yDirection = 0;
        if (keyEvent.getKeyCode() == KeyEvent.VK_UP) {
            xDirection = rect.x - (int) (VELOCITY * Math.cos(Math.toRadians(angle)));
            yDirection = rect.y -(int) (VELOCITY * Math.sin(Math.toRadians(angle)));
            this.setLocation(xDirection, yDirection);
        } else if (keyEvent.getKeyCode() == KeyEvent.VK_LEFT) {
            // It makes no difference on calculations but it's cleaner to read when we're debugging it
            if(this.angle - 3 < 0)
            {
                this.angle = 360;
            }
            this.angle -= 3 * STEERING_WHEEL_FACTOR;
            drawImage = tilt(backgroundImage,Math.toRadians(angle),gc);
            xDirection = rect.x - (int) (VELOCITY * Math.cos(Math.toRadians(angle)));
            yDirection = rect.y -(int) (VELOCITY * Math.sin(Math.toRadians(angle)));
            this.setLocation(xDirection, yDirection);
        } else if (keyEvent.getKeyCode() == KeyEvent.VK_RIGHT) {
            // It makes no difference on calculations but it's cleaner to read when we're debugging it
            if(this.angle + 3 > 360)
            {
                this.angle = 0;
            }
            this.angle += 3 * STEERING_WHEEL_FACTOR;
            drawImage = tilt(backgroundImage,Math.toRadians(angle),gc);
            xDirection = rect.x - (int) (VELOCITY * Math.cos(Math.toRadians(angle)));
            yDirection = rect.y -(int) (VELOCITY * Math.sin(Math.toRadians(angle)));
            this.setLocation(xDirection, yDirection);
        } else if (keyEvent.getKeyCode() == KeyEvent.VK_DOWN) {
            xDirection = rect.x + (int) (VELOCITY * Math.cos(Math.toRadians(angle)));
            yDirection = rect.y + (int) (VELOCITY * Math.sin(Math.toRadians(angle)));
            this.setLocation(xDirection, yDirection);
        }

    }