Coverage Summary for Class: PirateGame (com.mygdx.game)

Class Class, % Method, % Line, %
PirateGame 100% (1/1) 30% (3/10) 38.5% (20/52)


1 package com.mygdx.game; 2  3 import com.badlogic.gdx.Game; 4 import com.badlogic.gdx.Gdx; 5 import com.badlogic.gdx.Screen; 6 import com.badlogic.gdx.scenes.scene2d.Stage; 7 import com.badlogic.gdx.scenes.scene2d.ui.Skin; 8 import com.badlogic.gdx.utils.viewport.ScreenViewport; 9 import com.mygdx.game.Managers.*; 10 import com.mygdx.game.UI.EndScreen; 11 import com.mygdx.game.UI.GameScreen; 12 import com.mygdx.game.UI.MenuScreen; 13 import com.mygdx.game.UI.PauseScreen; 14  15 import java.util.Objects; 16  17 /** 18  * Contains class instances of game UI screens. 19  */ 20 public class PirateGame extends Game { 21  public MenuScreen menu; 22  public GameScreen game; 23  public EndScreen end; 24  public Stage stage; 25  public Skin skin; 26  public PauseScreen pause; 27  public static int id_map; 28  public GameDifficulty difficulty = GameDifficulty.Regular; 29  30  /** 31  * Create instances of game stage and UI screens. 32  */ 33  @Override 34  public void create() { 35  RenderingManager.Initialize(); // added for assessment 2 due to rendering refactoring for testing 36  loadResources(); 37  stage = new Stage(new ScreenViewport()); 38  createSkin(); 39  40  menu = new MenuScreen(this); 41  //game = new GameScreen(this, id_map); moved to game screen for assessment 2 42  end = new EndScreen(this); 43  pause = new PauseScreen(this); 44  45  setScreen(menu); 46  } 47  48  /** 49  * Added for Assessment 2 50  * Modularized resource loading, so it can be called from tests and for code clarity 51  */ 52  public static void loadResources() { 53  ResourceManager.addTexture("ship.png"); 54  id_map = ResourceManager.addTileMap("Map.tmx"); 55  56  ResourceManager.addTextureAtlas("Boats.txt"); 57  ResourceManager.addTextureAtlas("UISkin/skin.atlas"); 58  ResourceManager.addTextureAtlas("Buildings.txt"); 59  ResourceManager.addTextureAtlas("powerups.txt"); 60  ResourceManager.addTextureAtlas("obstacles.txt"); 61  62  63  ResourceManager.addTexture("menuBG.jpg"); 64  ResourceManager.addTexture("Chest.png"); 65  ResourceManager.addTexture("questArrow.png"); 66  67  ResourceManager.loadAssets(); 68  } 69  70  /** 71  * Clean up prevent memory leeks 72  */ 73  @Override 74  public void dispose() { 75  menu.dispose(); 76  game.dispose(); 77  stage.dispose(); 78  skin.dispose(); 79  } 80  81  /** 82  * load ui skin from assets 83  */ 84  private void createSkin() { 85  skin = new Skin(Gdx.files.internal("UISkin/skin.json")); 86  } 87  88  /** 89  * New for assessment 2 90  * new version of setScreen to stop the game screen being deleted before a new screen is set if the new screen is pause. 91  * @param screen the screen to be changed to 92  */ 93  @Override 94  public void setScreen (Screen screen) { 95  if (this.screen != null && screen != pause) this.screen.hide(); 96  this.screen = screen; 97  if (this.screen != null) { 98  this.screen.show(); 99  this.screen.resize(Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); 100  } 101  } 102  103  /** 104  * New for assessment 2 105  * Restarts the game by reinitialising the Managers and creating a new instance of GameScreen 106  */ 107  public void restartGame(){ 108  // can't load any more resources after this point (just functionally I choose not to implement) 109  RenderingManager.Initialize(); 110  EntityManager.Initialize(); 111  GameManager.Initialize(difficulty); 112  setScreen(menu); 113  } 114  115  /** 116  * New for assessment 2 117  * Changes the difficulty for the game by changing the enum and calling GameManager.getSettings() 118  */ 119  public void setDifficulty(String selected){ 120  if (Objects.equals(selected, "Easy")){ 121  difficulty = GameDifficulty.Easy; 122  } 123  else if (Objects.equals(selected, "Regular")) { 124  difficulty = GameDifficulty.Regular; 125  } 126  else if (Objects.equals(selected, "Hard")) { 127  difficulty = GameDifficulty.Hard; 128  } 129  else{ 130  difficulty = GameDifficulty.Regular; 131  132  } 133  } 134  /** 135  Added for assessment 2 so that the game doesn't start until after the difficulty has been chosen by the player 136  */ 137  public void StartGame(){ 138  PhysicsManager.Initialize(); 139  GameManager.Initialize(difficulty); 140  game = new GameScreen(this, id_map); 141  setScreen(game); 142  } 143  144  /** 145  * New for assessment 2 146  * Loads the game from the saved data 147  */ 148  public void LoadGame(){ 149  PhysicsManager.Initialize(); 150  SaveManager.LoadGame(); 151  152  GameManager.Initialize(difficulty); 153  game = new GameScreen(this, id_map); 154  155  SaveManager.SpawnGame(); 156  157  setScreen(game); 158  } 159  } 160  161