import ru.deadsoftware.cavedroid.misc.states.GameState;
import ru.deadsoftware.cavedroid.misc.states.MenuState;
+import javax.annotation.Nullable;
+
public class GameScreen implements Screen {
public static GameProc GP;
private Renderer renderer;
private MenuProc menuProc;
- private InputHandlerGame inputHandlerGame;
+ @Nullable private InputHandlerGame inputHandlerGame;
public GameScreen() {
Assets.load();
break;
case LOAD:
- GP.resetRenderer();
- renderer = GP.renderer;
+ renderer = GP.resetRenderer();
if (inputHandlerGame == null) {
inputHandlerGame = new InputHandlerGame();
}
renderer = menuProc;
break;
case GAME:
- GP.resetRenderer();
- renderer = GP.renderer;
+ renderer = GP.resetRenderer();
break;
}
}
import ru.deadsoftware.cavedroid.game.objects.Drop;
import ru.deadsoftware.cavedroid.misc.ControlMode;
+import javax.annotation.Nullable;
import java.io.Serializable;
import java.util.LinkedList;
public transient GameInput input;
public ControlMode controlMode;
transient GamePhysics physics;
- private transient GameFluidsThread fluidThread;
+ @Nullable private transient GameFluidsThread fluidThread;
public GameProc(int gameMode) {
world = new GameWorld(WORLD_WIDTH, WORLD_HEIGHT);
physics = new GamePhysics();
input = new GameInput();
controlMode = CaveGame.TOUCH ? ControlMode.WALK : ControlMode.CURSOR;
- resetRenderer();
+ renderer = resetRenderer();
startFluidThread();
}
- public void resetRenderer() {
+ public GameRenderer resetRenderer() {
int scale = CaveGame.TOUCH ? 320 : 480;
- renderer = new GameRenderer(scale, scale * GameScreen.getHeight() / GameScreen.getWidth());
+ renderer = new GameRenderer(scale, scale * GameScreen.getHeight() / GameScreen.getWidth());
+ return renderer;
}
private void startFluidThread() {
@Override
public void dispose() {
- fluidThread.interrupt();
+ if (fluidThread != null) {
+ fluidThread.interrupt();
+ }
}
}