Вопрос

Я хочу создать кнопку паузы на экране

Что я делаю сейчас, так это добавлять спрайт, и когда я прикасаюсь к нему, я делаю двигатель. Stop (), проблема с этим, в том, что двигатель не обрабатывает больше прикосновений, пока я не возобновлю игру (теперь я использую кнопку меню для Это), так есть ли способ этого достичь?

Спасибо!

Это было полезно?

Решение 2

Я обнаружил, что лучший способ сделать это - создать сцену, и при приостановке, установите переопределение on manananagedupdate таким образом

@Override
onManagedUpdate(float pSecondsElapsed){
 if(mPaused) super.onManagedUpdate(0);
 else        super.onManagedUpdate(pSecondsElapsed);
}

Таким образом, все работает отлично, и вы можете сделать это на игровом слое и обновлять слой меню как обычно,

Другие советы

Посмотрите на примеры Andengine, есть проект, который показывает использование меню в Andengine, вы найдете лучший способ реализации меню, кроме как остановить двигатель. Удачи!

Вы можете довольно легко сделать на экране кнопку паузы. Что вам нужно сделать, это создать кнопку паузы в любом месте на экране, нажав эту кнопку, покажите менуссен с кнопкой воспроизведения над исходной кнопкой паузы. Вы можете использовать .setPosition () для Menuitem, если вы прокомментируете код .buildAnimations () из примера PaUsemenu.

Чтобы продемонстрировать эту идею, я сделал простое действие, чтобы показать ее возможную. Посмотрите и попробуйте сами.

Ссылка на сайт: https://github.com/reittes/on-screen-pause-button

Удачи

Что я бы сделал, так это добавить в свой файл «приостановленную» логический if (!pause) {...} Блок, чтобы он прекратил обновлять, когда он приостановился. Не самое элегантное решение, но работало в моей игре и не вызвало проблемы с производительностью.

Код псамью

@Override
public boolean onKeyDown(final int pKeyCode, final KeyEvent pEvent) {
    if (pKeyCode == KeyEvent.KEYCODE_MENU && pEvent.getAction() == KeyEvent.ACTION_DOWN) {
        if (this.mEngine.isRunning()) {
            gSceneGlobal.setChildScene(this.mGamePauseScene, false, true, true);
            this.mEngine.stop();
        } else {
            gSceneGlobal.clearChildScene();
            this.mEngine.start();
        }
        return true;
    } else {
        return super.onKeyDown(pKeyCode, pEvent);
    }
}

Я создаю свой класс (MyEngine расширяет двигатель) и изменился

@Override
public boolean onTouch(final View pView, final MotionEvent pSurfaceMotionEvent) {                      
if(!isRunning()) {
  // add your code for engine.stop();
  }
}

и создать двигатель MyEngine в игровом классе;

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top