Я работаю над RPG для Android, используя демонстрацию API LunarLander.Я уже сделал игру, используя это демо (Porcupine Assassin, зацените!), Так что я хорошо понимаю класс Canvas и тому подобные вещи.
Моя проблема в том, что в RPG вынужен способ доступа к инвентарю, статистике и т. д. Поэтому я установил кнопку НАЗАД, чтобы запустить класс Inventory.java.У меня возникают проблемы, когда я завершаю () действие Инвентаризация и пытаюсь вернуться в игру (SurfaceView).
Это обратный вызов SurfaceCreated ():
public void surfaceCreated(SurfaceHolder holder) {
thread.setRunning(true);
thread.start();
}
Iполучал FC, вызванный «IllegalThreadStateException: поток уже запущен», поэтому я добавил try / catch в обратный вызов SurfaceCreated ().С try / catch не происходит FC, но я возвращаюсь к черному экрану.
Я попытался взять try / catch и добавить проверку в начале: if (! Thread.isAlive ()).Таким образом, если поток уже запущен, он ничего не сделает.Как ни странно, я получил тот же FC «поток уже запущен», поэтому thread.isAlive () должен был вернуть false .. ??
У меня также есть метод onWindowFocusChanged () из API:
@Override
public void onWindowFocusChanged(boolean hasWindowFocus) {
if (!hasWindowFocus) thread.pause();
else thread.setState(STATE_RUNNING);
}
Я очень заинтересован в игровой стороне, у меня есть большая часть основы для моей RPG.Но это все, что связано с Android / Java, которые у меня над головой.Кто-нибудь может указать мне правильное направление?