Skip to content
This repository has been archived by the owner on Mar 6, 2018. It is now read-only.

Commit

Permalink
[R] Abstract Game added
Browse files Browse the repository at this point in the history
  • Loading branch information
dector committed Jul 14, 2012
1 parent 28a5c76 commit 4f6004d
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 54 deletions.
8 changes: 2 additions & 6 deletions src/ua/org/dector/moon_lander/EntityController.java
@@ -1,12 +1,8 @@
package ua.org.dector.moon_lander;

import com.badlogic.gdx.audio.Music;
import com.badlogic.gdx.audio.Sound;
import ua.org.dector.moon_lander.managers.GameManagers;
import ua.org.dector.moon_lander.managers.SoundManager;
import ua.org.dector.moon_lander.models.Rocket;

import static ua.org.dector.moon_lander.AppConfig.*;
import static ua.org.dector.moon_lander.managers.SoundManager.SoundEvent;

/**
Expand All @@ -17,10 +13,10 @@ public class EntityController {

private SoundManager soundManager;

public EntityController(GameManagers gameManagers, Rocket rocket) {
public EntityController(LanderGame game, Rocket rocket) {
this.rocket = rocket;

soundManager = gameManagers.getSoundManager();
soundManager = game.getSoundManager();

loadSounds();
}
Expand Down
19 changes: 7 additions & 12 deletions src/ua/org/dector/moon_lander/LanderGame.java
@@ -1,50 +1,45 @@
package ua.org.dector.moon_lander;

import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx;
import ua.org.dector.moon_lander.managers.GameManagers;
import ua.org.dector.moon_lander.managers.AbstractGame;
import ua.org.dector.moon_lander.models.Level;
import ua.org.dector.moon_lander.models.Rocket;
import ua.org.dector.moon_lander.screens.AbstractScreen;
import ua.org.dector.moon_lander.screens.EditorScreen;
import ua.org.dector.moon_lander.screens.GameScreen;
import ua.org.dector.moon_lander.screens.SplashScreen;
import ua.org.dector.moon_lander.utils.LevelRenderer;

/**
* @author dector (dector9@gmail.com)
*/
public class LanderGame extends Game {
public class LanderGame extends AbstractGame {
private GameScreen gameScreen;
private SplashScreen splashScreen;
private EditorScreen editorScreen;

private AbstractScreen currentScreen;

private GameManagers gameManagers;

private Rocket rocket;
private Level[] levels;

public void create() {
super.create();
rocket = new Rocket();
levels = ResourceLoader.loadLevelSet("levelset.json");

gameManagers = new GameManagers();

splashScreen = new SplashScreen(gameManagers, this);
splashScreen = new SplashScreen(this);
switchScreen(splashScreen);
}

public void play() {
if (gameScreen == null)
gameScreen = new GameScreen(gameManagers, rocket, levels, this);
gameScreen = new GameScreen(rocket, levels, this);
switchScreen(gameScreen);
}

public void play(Level level) {
if (gameScreen == null)
gameScreen = new GameScreen(gameManagers, rocket, new Level[] {level}, this);
gameScreen = new GameScreen(rocket, new Level[] {level}, this);

gameScreen.setLevelSet(new Level[] {level});

Expand All @@ -65,7 +60,7 @@ public void switchScreen(AbstractScreen screen) {

public void openEditor(Level level, Rocket rocket) {
if (editorScreen == null)
editorScreen = new EditorScreen(gameManagers, level, rocket, this);
editorScreen = new EditorScreen(level, rocket, this);

if (level != editorScreen.getLevel())
editorScreen.editLevel(level, null);
Expand Down
@@ -1,12 +1,14 @@
package ua.org.dector.moon_lander.managers;

import com.badlogic.gdx.Game;

/**
* @author dector (dector9@gmail.com)
*/
public class GameManagers {
public abstract class AbstractGame extends Game {
private SoundManager soundManager;

public GameManagers() {
public void create() {
soundManager = new SoundManager();
}

Expand Down
8 changes: 4 additions & 4 deletions src/ua/org/dector/moon_lander/screens/AbstractScreen.java
Expand Up @@ -2,16 +2,16 @@

import com.badlogic.gdx.InputProcessor;
import com.badlogic.gdx.Screen;
import ua.org.dector.moon_lander.managers.GameManagers;
import ua.org.dector.moon_lander.managers.AbstractGame;

/**
* @author dector (dector9@gmail.com)
*/
public class AbstractScreen implements Screen, InputProcessor {
protected GameManagers gameManagers;
protected AbstractGame game;

public AbstractScreen(GameManagers gameManagers) {
this.gameManagers = gameManagers;
public AbstractScreen(AbstractGame game) {
this.game = game;
}

public void render(float delta) {}
Expand Down
20 changes: 6 additions & 14 deletions src/ua/org/dector/moon_lander/screens/EditorScreen.java
Expand Up @@ -9,7 +9,6 @@
import ua.org.dector.moon_lander.AppConfig;
import ua.org.dector.moon_lander.Graphics;
import ua.org.dector.moon_lander.LanderGame;
import ua.org.dector.moon_lander.managers.GameManagers;
import ua.org.dector.moon_lander.models.Level;
import ua.org.dector.moon_lander.models.Rocket;
import ua.org.dector.moon_lander.utils.LevelRenderer;
Expand All @@ -22,9 +21,6 @@
* @author dector (dector9@gmail.com)
*/
public class EditorScreen extends AbstractScreen {
// private Level level;
private LanderGame landerGame;

private Tool selectedTool;
private DrawingState drawingState;

Expand Down Expand Up @@ -52,14 +48,10 @@ private enum DrawingState {
NOT_STARTED, DRAWING, FINISHED
}

public EditorScreen(GameManagers gameManagers,
Level level,
public EditorScreen(Level level,
Rocket rocket,
LanderGame landerGame) {
super(gameManagers);

// this.level = level;
this.landerGame = landerGame;
LanderGame game) {
super(game);

levelRenderer = new LevelRenderer(rocket);

Expand Down Expand Up @@ -117,7 +109,7 @@ public void render(float delta) {
int x = Gdx.input.getX();
int y = SCREEN_HEIGHT - Gdx.input.getY() - 1;

levelRenderer.render(gameManagers.getSoundManager().isMuted(),
levelRenderer.render(game.getSoundManager().isMuted(),
false, false, false, false);

Graphics.begin();
Expand Down Expand Up @@ -221,7 +213,7 @@ public boolean keyDown(int keycode) {

switch (keycode) {
case Keys.ESCAPE: Gdx.app.exit(); break;
case Keys.M: gameManagers.getSoundManager().toggleMuted(); break;
case Keys.M: game.getSoundManager().toggleMuted(); break;
case Keys.NUM_1: selectedTool = Tool.POINTER; break;
case Keys.NUM_2: selectedTool = Tool.DRAWER; break;
case Keys.NUM_3: selectedTool = Tool.FLAG; break;
Expand Down Expand Up @@ -267,7 +259,7 @@ public boolean keyDown(int keycode) {
}
} break;
case Keys.R: {
landerGame.play(level);
((LanderGame) game).play(level);
} break;
case Keys.S: {
if (Gdx.input.isKeyPressed(Keys.CONTROL_LEFT) && levelName != null) {
Expand Down
25 changes: 12 additions & 13 deletions src/ua/org/dector/moon_lander/screens/GameScreen.java
Expand Up @@ -5,7 +5,6 @@
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.audio.Sound;
import ua.org.dector.moon_lander.*;
import ua.org.dector.moon_lander.managers.GameManagers;
import ua.org.dector.moon_lander.managers.SoundManager;
import ua.org.dector.moon_lander.models.Level;
import ua.org.dector.moon_lander.models.Rocket;
Expand Down Expand Up @@ -34,30 +33,30 @@ public class GameScreen extends AbstractScreen {

private EntityController entityController;
private LevelRenderer levelRenderer;
private LanderGame landerGame;

public GameScreen(GameManagers gameManagers, Rocket rocket,
Level[] levels, LanderGame landerGame) {
super(gameManagers);
public GameScreen(Rocket rocket,
Level[] levels, LanderGame game) {
super(game);

this.landerGame = landerGame;
this.rocket = rocket;
setLevelSet(levels);

loadSounds();

entityController = new EntityController(gameManagers, rocket);
entityController = new EntityController(game, rocket);
levelRenderer = new LevelRenderer(rocket);

playLevel(0);

reset();

gameManagers.getSoundManager().playMusic();
game.getSoundManager().playMusic();
}



private void loadSounds() {
SoundManager sm = gameManagers.getSoundManager();
SoundManager sm = game.getSoundManager();

Sound burnSound = ResourceLoader.loadSound(BURN_FILE);
Sound crashSound = ResourceLoader.loadSound(CRASH_FILE);
Expand Down Expand Up @@ -96,7 +95,7 @@ public void render(float delta) {
}

levelRenderer.render(
gameManagers.getSoundManager().isMuted(),
game.getSoundManager().isMuted(),
paused,
collided,
landed,
Expand Down Expand Up @@ -193,19 +192,19 @@ public boolean keyDown(int keycode) {
playLevel(++levelIndex);
reset();
} break;
case Keys.M: gameManagers.getSoundManager().toggleMuted(); break;
case Keys.M: game.getSoundManager().toggleMuted(); break;
case Keys.P: paused = ! paused; break;
case Keys.E:
if (Gdx.input.isKeyPressed(Keys.SHIFT_LEFT)) {
Level newLevel = new Level(SCREEN_WIDTH, SCREEN_HEIGHT);
newLevel.setRocketParams(SCREEN_WIDTH / 2, SCREEN_HEIGHT, 90);
landerGame.openEditor(
((LanderGame) game).openEditor(
newLevel,
new Rocket()
);
} else {
reset();
landerGame.openEditor(level, rocket);
((LanderGame) game).openEditor(level, rocket);
} break;
}

Expand Down
5 changes: 2 additions & 3 deletions src/ua/org/dector/moon_lander/screens/SplashScreen.java
Expand Up @@ -17,7 +17,6 @@
import ua.org.dector.moon_lander.Graphics;
import ua.org.dector.moon_lander.LanderGame;
import ua.org.dector.moon_lander.ResourceLoader;
import ua.org.dector.moon_lander.managers.GameManagers;

import static ua.org.dector.moon_lander.AppConfig.*;

Expand All @@ -36,8 +35,8 @@ public class SplashScreen extends AbstractScreen {

private boolean completed;

public SplashScreen(GameManagers gameManagers, LanderGame landerGame) {
super(gameManagers);
public SplashScreen(LanderGame landerGame) {
super(landerGame);

this.landerGame = landerGame;

Expand Down

0 comments on commit 4f6004d

Please sign in to comment.