Advertisement
Guest User

Runner

a guest
Apr 8th, 2020
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.57 KB | None | 0 0
  1. package sample;
  2.  
  3. import core.Sound;
  4. import core.SpaceEngine;
  5. import javafx.application.Application;
  6. import javafx.event.ActionEvent;
  7. import javafx.event.EventHandler;
  8. import javafx.scene.Scene;
  9. import javafx.scene.control.Button;
  10. import javafx.scene.layout.BorderPane;
  11. import javafx.scene.media.Media;
  12. import javafx.scene.media.MediaPlayer;
  13. import javafx.scene.paint.Color;
  14. import javafx.stage.Stage;
  15. import nl.hsleiden.engine.GameLoader;
  16. import nl.hsleiden.engine.Engine;
  17. import nl.hsleiden.game.Element;
  18. import nl.hsleiden.game.Game;
  19. import nl.hsleiden.game.Tile;
  20. import sample.hero.Hero;
  21. import sample.tiles.GrassTile;
  22. import sample.tiles.WaterTile;
  23. import spaceInvaders.hidden.Hidden;
  24. import spaceInvaders.humanoid.Speler;
  25. import spaceInvaders.humanoid.Vijand;
  26. import spaceInvaders.tiles.SpaceTile;
  27. import java.nio.file.Paths;a
  28. import java.util.HashMap;
  29.  
  30. public class Runner extends Application {
  31.  
  32.     @Override
  33.     public void start(Stage primaryStage) throws Exception{
  34.        
  35.         /*Standaard javafx applicatie opbouw*/
  36.         primaryStage.setTitle("Space Invaders 2020");
  37.         Button startGameButton = new Button("Start Game");
  38.         BorderPane pane = new BorderPane();
  39.         primaryStage.setResizable(false);
  40.         //play title screen music
  41.         Sound.musicTitle();
  42.        
  43.         startGameButton.setOnAction(new EventHandler<ActionEvent>() {
  44.             @Override
  45.             public void handle(ActionEvent event) {
  46.                 Sound.stopMusic(); //stop title screen music
  47.                 startGame(primaryStage);
  48.  
  49.                 Sound.musicInGame();//start game music on load
  50.  
  51.             }
  52.         });
  53.  
  54.         pane.setCenter(startGameButton);
  55.         Scene startGameScene = new Scene(pane, 500, 500, Color.WHITE );
  56.         primaryStage.setScene(startGameScene);
  57.         primaryStage.show();
  58.             }
  59.  
  60.     private void startGame(Stage primaryStage){
  61.         GameLoader gameLoader = new GameLoader();
  62.  
  63.         /*aanmaken van de hashmaps om de tiles van een level en de elementen van een level te mappen*/
  64.         HashMap<Integer, Class<? extends Tile>> tileHashMap = new HashMap<>();
  65.         tileHashMap.put(1,WaterTile.class);
  66.         tileHashMap.put(0, GrassTile.class);
  67.         gameLoader.addTileConfiguration(tileHashMap);
  68.  
  69.         HashMap<Integer, Class<? extends Element>> elementHashMap = new HashMap<>();
  70.         elementHashMap.put(0, Hero.class);
  71.         gameLoader.addElementsConfiguration(elementHashMap);
  72.  
  73.         /* toevoegen aan de gameloader van de levels van de game in dit geval alleen level 1, hier gaat als eerste
  74.         een pad naar de tiles txt bestand en als tweede een pad naar de elementen. */
  75.         gameLoader.addLevel(1,"/resources/level1Tiles.txt","/resources/level1Elements.txt");
  76.  
  77.         //aanmaken van het game object
  78.         Game game = gameLoader.load();
  79.  
  80.         /*set het element waar de game camera op moet focussen, let op hier kijkt de engine naar alle elementen die in het level staan en
  81.         get(0) is hier dus het eerste element wat deze tegen komt. Dit hoeft dus niet het eerste element te zijn wat toegevoegd is
  82.         aan de elementen hashmap. */
  83.         game.getLevels().get(0).setFocusedElement(game.getLevels().get(0).getElements().get(0));
  84.         game.setActiveLevel(game.getLevels().get(0));
  85.  
  86.         /*aanmaken van de engine*/
  87.         Engine engine = new Engine(game);
  88.  
  89.         engine.start(primaryStage);
  90.  
  91.        //Sound.musicInGame(); dont use this after engine.start() it's broken.
  92.  
  93.     }
  94.  
  95.  
  96.     public static void main(String[] args) {
  97.         launch(args);
  98.     }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement