package com.tacoid.pweek.screens; import com.tacoid.pweek.Pweek; import com.tacoid.pweek.IGameService.LeaderboardType; import com.tacoid.pweek.ScoreManager.GameType; import com.tacoid.pweek.actors.GooglePlayActor; import com.tacoid.pweek.actors.LevelActor; public class GameSoloScreen extends GameScreenPortrait { private static GameSoloScreen instance; public static boolean initialized = false; private int level; private float timeLevel; private float speed; private int n_colors; private float timeGarbage; public void initGraphics() { super.initGraphics(); LevelActor levelActor = new LevelActor(Pweek.getInstance().manager, this, 140, 800); stage.getRoot().addActorBefore(gameOver, levelActor); addButton(new GooglePlayActor(Pweek.getInstance().getGameService(), LeaderboardType.SOLO, Pweek.getInstance().atlasBouttons, Pweek.getInstance().atlasGoogle), 180, VIRTUAL_HEIGHT-90); } @Override public void render(float delta) { super.render(delta); if (!gameLogic.isPaused() && !gameEnded()) { if (level >= 5 && timeGarbage > 12.0f / (level - 4)) { gameLogic.sendGarbage(1); timeGarbage = 0; } else { timeGarbage += delta; } if (gameLogic.getScore() >= level * 1000 || timeLevel > 120) { if (level < 10) { level++; } switch (level) { case 2: n_colors = 4; break; case 3: speed = 0.4f; break; case 4: n_colors = 5; break; case 6: speed = 0.3f; break; case 8: speed = 0.25f; break; case 10: speed = 0.2f; } gameLogic.setNColors(n_colors); gameLogic.setSpeed(speed); timeLevel = 0; } else { timeLevel += delta; } } } @Override public void init() { level = 1; timeLevel = 0; timeGarbage = 0; speed = 0.5f; n_colors = 3; gameLogic.setSpeed(speed); gameLogic.setNColors(n_colors); super.init(); } public static GameSoloScreen getInstance() { if (instance == null) { instance = new GameSoloScreen(); } return instance; } public int getLevel() { return level; } @Override public GameType getGameType() { return GameType.SOLO; } }