Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sample;
- import core.Sound;
- import core.SpaceEngine;
- import javafx.application.Application;
- import javafx.event.ActionEvent;
- import javafx.event.EventHandler;
- import javafx.scene.Scene;
- import javafx.scene.control.Button;
- import javafx.scene.layout.BorderPane;
- import javafx.scene.media.Media;
- import javafx.scene.media.MediaPlayer;
- import javafx.scene.paint.Color;
- import javafx.stage.Stage;
- import nl.hsleiden.engine.GameLoader;
- import nl.hsleiden.engine.Engine;
- import nl.hsleiden.game.Element;
- import nl.hsleiden.game.Game;
- import nl.hsleiden.game.Tile;
- import sample.hero.Hero;
- import sample.tiles.GrassTile;
- import sample.tiles.WaterTile;
- import spaceInvaders.hidden.Hidden;
- import spaceInvaders.humanoid.Speler;
- import spaceInvaders.humanoid.Vijand;
- import spaceInvaders.tiles.SpaceTile;
- import java.nio.file.Paths;a
- import java.util.HashMap;
- public class Runner extends Application {
- @Override
- public void start(Stage primaryStage) throws Exception{
- /*Standaard javafx applicatie opbouw*/
- primaryStage.setTitle("Space Invaders 2020");
- Button startGameButton = new Button("Start Game");
- BorderPane pane = new BorderPane();
- primaryStage.setResizable(false);
- //play title screen music
- Sound.musicTitle();
- startGameButton.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent event) {
- Sound.stopMusic(); //stop title screen music
- startGame(primaryStage);
- Sound.musicInGame();//start game music on load
- }
- });
- pane.setCenter(startGameButton);
- Scene startGameScene = new Scene(pane, 500, 500, Color.WHITE );
- primaryStage.setScene(startGameScene);
- primaryStage.show();
- }
- private void startGame(Stage primaryStage){
- GameLoader gameLoader = new GameLoader();
- /*aanmaken van de hashmaps om de tiles van een level en de elementen van een level te mappen*/
- HashMap<Integer, Class<? extends Tile>> tileHashMap = new HashMap<>();
- tileHashMap.put(1,WaterTile.class);
- tileHashMap.put(0, GrassTile.class);
- gameLoader.addTileConfiguration(tileHashMap);
- HashMap<Integer, Class<? extends Element>> elementHashMap = new HashMap<>();
- elementHashMap.put(0, Hero.class);
- gameLoader.addElementsConfiguration(elementHashMap);
- /* toevoegen aan de gameloader van de levels van de game in dit geval alleen level 1, hier gaat als eerste
- een pad naar de tiles txt bestand en als tweede een pad naar de elementen. */
- gameLoader.addLevel(1,"/resources/level1Tiles.txt","/resources/level1Elements.txt");
- //aanmaken van het game object
- Game game = gameLoader.load();
- /*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
- get(0) is hier dus het eerste element wat deze tegen komt. Dit hoeft dus niet het eerste element te zijn wat toegevoegd is
- aan de elementen hashmap. */
- game.getLevels().get(0).setFocusedElement(game.getLevels().get(0).getElements().get(0));
- game.setActiveLevel(game.getLevels().get(0));
- /*aanmaken van de engine*/
- Engine engine = new Engine(game);
- engine.start(primaryStage);
- //Sound.musicInGame(); dont use this after engine.start() it's broken.
- }
- public static void main(String[] args) {
- launch(args);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement