@Override
    public void run() {

        if (scores.equals("Null:00")) {
            scores.getHighscore();
        }

        gui.setup();
        gui.getFrame().toFront();
        p.setAsteroidAmount(asteroidAmount);
        p.setGameSpeed(gameSpeed);
        p.spawnAsteroids();
        while (p.getShip().getAlive()) {

            if (p.getFirstRound()) {
                gui.render();
                p.setFirstRound(false);
                try {
                    Thread.sleep(4000);   
                } catch (Exception e) {
                }
            }

            gui.render();
            try {
                Thread.sleep(33);
            } catch (Exception e) {
            }
            p.shipInputReaction();
            p.roundOfMovement();
            p.collisionCount();
            p.deadRemoval();

            if (p.getAsteroids().isEmpty()) {
                p.getShip().setX(p.getWidth() / 2);
                p.getShip().setY(p.getHeight() / 2);
                p.getShip().setFaceDir(90);
                p.setLevelup(true);
                gui.render();
                try {
                    Thread.sleep(4000);
                } catch (Exception e) {
                }
                p.setAsteroidAmount(p.getAsteroidAmount() + 5);
                p.spawnAsteroids();
                p.getShip().setVelX(0);
                p.getShip().setVelY(0);
                p.setLevelup(false);
            }
        }
        gui.render();
        scores.checkScore();

    }