@Override
    public boolean run(Camera camera, FrameBuffer buffer){
        boolean doLoop;
        doLoop      = true;
        adapter     = new AdapterPhysics(world);
        long ticks  = ticker.getTicks();
        if (ticks > 0) {
            //рассчитываем все силы и считаем новые местоположения объектов
            adapter.calcForce();
            for(MassAttractObject3D e : system)
                e.calcLocation(0.1f);
            //используем обработчик событий для движения камеры

            Main.KEYBOARD_LISTENER.setMainState();
            while(Main.KEYBOARD_LISTENER.getMainState() != KeyState.NONE) {
                Main.KEYBOARD_LISTENER.pollControls();

            }
            if((doLoop = pollControls())) {
                applyControl(ticks, buffer);
                camera.pollControls();
                camera.applyControl(ticks, buffer);
            }
        }

        //не используется, а вообще для подсчета fps
        /*if (System.currentTimeMillis() - time >= 1000) {
            fps = 0;
            time = System.currentTimeMillis();
        } */
        return doLoop;

    }