From b0f96305e510376eb2ec989706b587f63eb1f7ff Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 26 Nov 2014 11:38:25 +0100 Subject: [PATCH 1/3] angepasst an player --- HeatUp/src/de/heatup/ui/actionPanel/ActionControl.java | 3 +-- HeatUp/src/de/heatup/ui/actionPanel/ActionWatcher.java | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/HeatUp/src/de/heatup/ui/actionPanel/ActionControl.java b/HeatUp/src/de/heatup/ui/actionPanel/ActionControl.java index 0550b57..e0018a1 100644 --- a/HeatUp/src/de/heatup/ui/actionPanel/ActionControl.java +++ b/HeatUp/src/de/heatup/ui/actionPanel/ActionControl.java @@ -42,7 +42,6 @@ public class ActionControl{ resetActionPanel(); } public static void setAction(int rd){ - System.out.println(" 33 "+Thread.currentThread()); setKeyA(); if(rd==1){ option=1; @@ -112,7 +111,7 @@ public class ActionControl{ }else{ resetActionPanel(); actionLabel.setText("Manipulation erfolgreich!"); - HardewareManipulate.setHardware(MapGrid.getGridCell(Main.player01.getGridLocation().x, Main.player01.getGridLocation().y).getCorrespondingHardwareToTrigger()); + HardewareManipulate.setHardware(MapGrid.getGridCell(Main.getPlayer().getGridLocation().x, Main.getPlayer().getGridLocation().y).getCorrespondingHardwareToTrigger()); } } private static void setAchiv(){ diff --git a/HeatUp/src/de/heatup/ui/actionPanel/ActionWatcher.java b/HeatUp/src/de/heatup/ui/actionPanel/ActionWatcher.java index 7f68a78..8dd708b 100644 --- a/HeatUp/src/de/heatup/ui/actionPanel/ActionWatcher.java +++ b/HeatUp/src/de/heatup/ui/actionPanel/ActionWatcher.java @@ -19,16 +19,16 @@ public class ActionWatcher{ } public static void tick(){ //Infotext, wenn man in der n�he von einem Hardwareteil steht - if(MapGrid.getGridCell(Main.player01.getGridLocation().x, Main.player01.getGridLocation().y).isTrigger() && !action && !setAction){ + if(MapGrid.getGridCell(Main.getPlayer().getGridLocation().x, Main.getPlayer().getGridLocation().y).isTrigger() && !action && !setAction){ infoText=true; - if(!HardewareManipulate.getHardware(MapGrid.getGridCell(Main.player01.getGridLocation().x, Main.player01.getGridLocation().y).getCorrespondingHardwareToTrigger())){ + if(!HardewareManipulate.getHardware(MapGrid.getGridCell(Main.getPlayer().getGridLocation().x, Main.getPlayer().getGridLocation().y).getCorrespondingHardwareToTrigger())){ ActionControl.setTextforA(); }else{ ActionControl.setTextforManipulate(); } } //Entfernt InfoText - if(!MapGrid.getGridCell(Main.player01.getGridLocation().x, Main.player01.getGridLocation().y).isTrigger() && infoText){ + if(!MapGrid.getGridCell(Main.getPlayer().getGridLocation().x, Main.getPlayer().getGridLocation().y).isTrigger() && infoText){ ActionControl.resetActionPanel(); infoText=false; } @@ -39,7 +39,7 @@ public class ActionWatcher{ ActionControl.setAction(new Random().nextInt(2)+1); } //Entfernt jeglichen Text wenn man sich von dem Hardwarest�ck entfernt, nachdem Aktion bereits eingeleitet wurde, und setzt Booleans/Counter wieder auf die Ausgangssituation - if(!MapGrid.getGridCell(Main.player01.getGridLocation().x, Main.player01.getGridLocation().y).isTrigger() && setAction){ + if(!MapGrid.getGridCell(Main.getPlayer().getGridLocation().x, Main.getPlayer().getGridLocation().y).isTrigger() && setAction){ ActionControl.resetActionPanel(); ActionControl.resetKeyA(); infoText=false; From cf68619531c1a1a123d9d7723263bf3b706d70e5 Mon Sep 17 00:00:00 2001 From: toksikk Date: Thu, 27 Nov 2014 09:19:36 +0100 Subject: [PATCH 2/3] Highscores sind jetzt verfuegbar und koennen am Rundenende veraendert werden. Serialisierung funktioniert auch schon. --- .../de/heatup/highscore/HighscoreHandler.java | 129 +++++++++++++++++- .../{MapHighscore.java => MapHighscores.java} | 18 +-- .../highscore/{Score.java => ScoreEntry.java} | 6 +- HeatUp/src/de/heatup/mapengine/MapEngine.java | 13 +- HeatUp/src/de/heatup/ui/Main.java | 2 +- HeatUp/src/de/heatup/ui/PanelBuilder.java | 18 ++- 6 files changed, 167 insertions(+), 19 deletions(-) rename HeatUp/src/de/heatup/highscore/{MapHighscore.java => MapHighscores.java} (54%) rename HeatUp/src/de/heatup/highscore/{Score.java => ScoreEntry.java} (79%) diff --git a/HeatUp/src/de/heatup/highscore/HighscoreHandler.java b/HeatUp/src/de/heatup/highscore/HighscoreHandler.java index 03b03ba..4373422 100644 --- a/HeatUp/src/de/heatup/highscore/HighscoreHandler.java +++ b/HeatUp/src/de/heatup/highscore/HighscoreHandler.java @@ -1,16 +1,143 @@ package de.heatup.highscore; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.ArrayList; + +import com.sun.org.apache.xml.internal.serializer.SerializationHandler; + import de.heatup.cfg.Config; import de.heatup.logging.Logger; public class HighscoreHandler { private int mapHash; + private MapHighscores mapHighscores; /** * Es muss vorher eine Karte geladen sein */ public HighscoreHandler(String mapString) { mapHash = mapString.hashCode(); - // load file for serialization + + try { + FileInputStream fileIn = new FileInputStream("highscore.dat"); + ObjectInputStream in = new ObjectInputStream(fileIn); + mapHighscores = (MapHighscores) in.readObject(); + in.close(); + fileIn.close(); + Logger.write("loaded highscore.dat"); + } catch (FileNotFoundException fe) { + mapHighscores = new MapHighscores(); + FileOutputStream fileOut = null; + try { + fileOut = new FileOutputStream("highscore.dat"); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + ObjectOutputStream out = null; + try { + out = new ObjectOutputStream(fileOut); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + out.writeObject(mapHighscores); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + out.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + fileOut.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + Logger.write("created new highscore.dat"); + + + + FileInputStream fileIn = null; + try { + fileIn = new FileInputStream("highscore.dat"); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + ObjectInputStream in = null; + try { + in = new ObjectInputStream(fileIn); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + mapHighscores = (MapHighscores) in.readObject(); + } catch (ClassNotFoundException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + try { + in.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + fileIn.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + Logger.write("loaded highscore.dat"); + } catch (IOException e) { + + e.printStackTrace(); + return; + } catch (ClassNotFoundException ce) { + Logger.write("MapHighscore class not found"); + ce.printStackTrace(); + return; + } + + + } + public int getCurrentMapHash() { + return mapHash; + } + public void setHighscore(int mapHash, String name, int score) { + mapHighscores.setHighscore(mapHash, name, score); + } + public ArrayList getHighscores(int mapHash) { + return mapHighscores.getHighscores(mapHash); + } + public boolean saveHighscores() { + try { + FileOutputStream fileOut = new FileOutputStream("highscore.dat"); + ObjectOutputStream out = new ObjectOutputStream(fileOut); + out.writeObject(mapHighscores); + out.close(); + fileOut.close(); + Logger.write("saved highscore.dat"); + return true; + } catch (IOException e) { + e.printStackTrace(); + Logger.write("error saving highscore.dat"); + return false; + } } } diff --git a/HeatUp/src/de/heatup/highscore/MapHighscore.java b/HeatUp/src/de/heatup/highscore/MapHighscores.java similarity index 54% rename from HeatUp/src/de/heatup/highscore/MapHighscore.java rename to HeatUp/src/de/heatup/highscore/MapHighscores.java index 7630240..27c66ba 100644 --- a/HeatUp/src/de/heatup/highscore/MapHighscore.java +++ b/HeatUp/src/de/heatup/highscore/MapHighscores.java @@ -5,28 +5,28 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; -public class MapHighscore implements Serializable { +public class MapHighscores implements Serializable { private static final long serialVersionUID = 1L; - private Map> highscoreOfAllMaps = new HashMap>(); + private Map> highscoreOfAllMaps = new HashMap>(); - public ArrayList getHighscores(int mapHash) { + protected ArrayList getHighscores(int mapHash) { if (highscoreOfAllMaps.get(mapHash) == null) { - ArrayList mapHighscores = new ArrayList(); + ArrayList mapHighscores = new ArrayList(); for (int n = 0; n<10; n++) { - mapHighscores.add(new Score()); + mapHighscores.add(new ScoreEntry()); } highscoreOfAllMaps.put(mapHash, mapHighscores); } return highscoreOfAllMaps.get(mapHash); } - public void setHighscore(int mapHash, String name, int score) { + protected void setHighscore(int mapHash, String name, int score) { - ArrayList mapHighscores = highscoreOfAllMaps.get(mapHash); + ArrayList mapHighscores = highscoreOfAllMaps.get(mapHash); - ArrayList newMapHighscores = new ArrayList(); + ArrayList newMapHighscores = new ArrayList(); int i = 0; @@ -35,7 +35,7 @@ public class MapHighscore implements Serializable { if (mapHighscores.get(i).getScore() > score) { newMapHighscores.add(mapHighscores.get(i)); } else { - newMapHighscores.add(new Score(name, score)); + newMapHighscores.add(new ScoreEntry(name, score)); break; } diff --git a/HeatUp/src/de/heatup/highscore/Score.java b/HeatUp/src/de/heatup/highscore/ScoreEntry.java similarity index 79% rename from HeatUp/src/de/heatup/highscore/Score.java rename to HeatUp/src/de/heatup/highscore/ScoreEntry.java index 6b5fef6..9cf08ff 100644 --- a/HeatUp/src/de/heatup/highscore/Score.java +++ b/HeatUp/src/de/heatup/highscore/ScoreEntry.java @@ -2,19 +2,19 @@ package de.heatup.highscore; import java.io.Serializable; -public class Score implements Serializable { +public class ScoreEntry implements Serializable { private static final long serialVersionUID = 1L; private String name; private int score; - public Score() { + public ScoreEntry() { name = "default"; score = 2342; } - public Score(String name, int score) { + public ScoreEntry(String name, int score) { this.name = name; this.score = score; } diff --git a/HeatUp/src/de/heatup/mapengine/MapEngine.java b/HeatUp/src/de/heatup/mapengine/MapEngine.java index 850c9e0..6b7d04f 100644 --- a/HeatUp/src/de/heatup/mapengine/MapEngine.java +++ b/HeatUp/src/de/heatup/mapengine/MapEngine.java @@ -34,7 +34,7 @@ public class MapEngine { private static String mapString = ""; - private final HighscoreHandler mapHighscore; + private HighscoreHandler highscoreHandler; HashMap> allMapTiles = new HashMap>(); ArrayList availableHardwareTileTypes = new ArrayList(); @@ -46,9 +46,8 @@ public class MapEngine { Scanner input = null; MapLoader ml = new MapLoader(); input = new Scanner(ml.loadMap(mapNumber)); - this.createTiles(input); - mapHighscore = new HighscoreHandler(mapString); + highscoreHandler = new HighscoreHandler(mapString); } /** * Öffnet einen File Chooser um eine Custom Map auszuwählen, welche anschließend geladen wird. @@ -63,7 +62,10 @@ public class MapEngine { e.printStackTrace(); } this.createTiles(input); - mapHighscore = new HighscoreHandler(mapString); + highscoreHandler = new HighscoreHandler(mapString); + } + public HighscoreHandler getHighscoreHandler() { + return highscoreHandler; } /** * Erstellt aus einem gegebenen Scanner, welche eine Datei einliest, @@ -260,4 +262,7 @@ public class MapEngine { gamePanel.add(currentStaticObject); } } + public int getMapHash() { + return highscoreHandler.getCurrentMapHash(); + } } diff --git a/HeatUp/src/de/heatup/ui/Main.java b/HeatUp/src/de/heatup/ui/Main.java index b567ec0..c912901 100644 --- a/HeatUp/src/de/heatup/ui/Main.java +++ b/HeatUp/src/de/heatup/ui/Main.java @@ -32,7 +32,7 @@ public class Main extends JFrame implements Runnable { private boolean running = false; private static boolean pause = false; - private boolean fullscreen = true; + private boolean fullscreen = false; private Thread thread; diff --git a/HeatUp/src/de/heatup/ui/PanelBuilder.java b/HeatUp/src/de/heatup/ui/PanelBuilder.java index 8dc0262..966b70c 100644 --- a/HeatUp/src/de/heatup/ui/PanelBuilder.java +++ b/HeatUp/src/de/heatup/ui/PanelBuilder.java @@ -4,6 +4,8 @@ import java.awt.Point; import javax.swing.JPanel; +import de.heatup.highscore.ScoreEntry; +import de.heatup.logging.Logger; import de.heatup.mapengine.MapEngine; import de.heatup.mapengine.SpawnAssistant; import de.heatup.objects.ImageLoader; @@ -85,7 +87,21 @@ public class PanelBuilder { me = new MapEngine(); } me.addAllToPanel(gamePanel); - + + /** + * Highscore tests + */ + +// for (ScoreEntry score : me.getHighscoreHandler().getHighscores(me.getMapHash())) { +// Logger.write(score.getName()+" "+score.getScore()); +// } +// me.getHighscoreHandler().setHighscore(me.getMapHash(), "Daniel", 3134); +// me.getHighscoreHandler().saveHighscores(); + + /** + * Ende Highscore tests + */ + for (Player movingObject : instancedObjects.getObjects()) { Point spawnPoint = SpawnAssistant.getPathLocationOnGrid(); From fdb3ada50192d2ae6839363469d76ef85042da00 Mon Sep 17 00:00:00 2001 From: toksikk Date: Fri, 5 Dec 2014 10:08:23 +0100 Subject: [PATCH 3/3] =?UTF-8?q?Anpassung=20an=20Highscores=20und=20PanelBu?= =?UTF-8?q?ilder=20vorbereitung=20f=C3=BCr=20men=C3=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../de/heatup/highscore/HighscoreHandler.java | 6 +- .../de/heatup/highscore/MapHighscores.java | 6 +- HeatUp/src/de/heatup/ui/Main.java | 37 +---------- HeatUp/src/de/heatup/ui/PanelBuilder.java | 63 +++++++++++++++++-- 4 files changed, 72 insertions(+), 40 deletions(-) diff --git a/HeatUp/src/de/heatup/highscore/HighscoreHandler.java b/HeatUp/src/de/heatup/highscore/HighscoreHandler.java index 4373422..befd54a 100644 --- a/HeatUp/src/de/heatup/highscore/HighscoreHandler.java +++ b/HeatUp/src/de/heatup/highscore/HighscoreHandler.java @@ -12,7 +12,11 @@ import com.sun.org.apache.xml.internal.serializer.SerializationHandler; import de.heatup.cfg.Config; import de.heatup.logging.Logger; - +/** + * + * @author daniel + * + */ public class HighscoreHandler { private int mapHash; private MapHighscores mapHighscores; diff --git a/HeatUp/src/de/heatup/highscore/MapHighscores.java b/HeatUp/src/de/heatup/highscore/MapHighscores.java index 27c66ba..14d0ef3 100644 --- a/HeatUp/src/de/heatup/highscore/MapHighscores.java +++ b/HeatUp/src/de/heatup/highscore/MapHighscores.java @@ -4,7 +4,11 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; - +/** + * + * @author daniel + * + */ public class MapHighscores implements Serializable { private static final long serialVersionUID = 1L; diff --git a/HeatUp/src/de/heatup/ui/Main.java b/HeatUp/src/de/heatup/ui/Main.java index c912901..197dd77 100644 --- a/HeatUp/src/de/heatup/ui/Main.java +++ b/HeatUp/src/de/heatup/ui/Main.java @@ -108,7 +108,7 @@ public class Main extends JFrame implements Runnable { /* * entfernen wenn getter verwendet wird. */ - player01 = PanelBuilder.player01; + player01 = PanelBuilder.getPlayer(); /* @@ -170,7 +170,7 @@ public class Main extends JFrame implements Runnable { } public static Player getPlayer() { - return PanelBuilder.player01; + return PanelBuilder.getPlayer(); } public synchronized void start() { @@ -243,38 +243,7 @@ public class Main extends JFrame implements Runnable { private void tick() { PanelBuilder.kb.checkKeyActivity(); if (!pause) { - EventQueue.invokeLater(new Runnable() { - @Override public void run() { - ActionWatcher.tick(); - } - }); - EventQueue.invokeLater(new Runnable() { - @Override public void run() { - ActionControl.tick(); - } - }); - EventQueue.invokeLater(new Runnable() { - @Override public void run() { - HardwareResetTimers.tick(); - } - }); - for (final Player object : PanelBuilder.getInstancedObjects().getObjects()) { - EventQueue.invokeLater(new Runnable() { - @Override public void run() { - object.tick(); - } - }); - } - EventQueue.invokeLater(new Runnable() { - @Override public void run() { - CollisionHandler.tick(); - } - }); - EventQueue.invokeLater(new Runnable() { - @Override public void run() { - StatusPanelAdder.tick(); - } - }); + PanelBuilder.tick(); } } // alles was animiert wird hier rein (paints) diff --git a/HeatUp/src/de/heatup/ui/PanelBuilder.java b/HeatUp/src/de/heatup/ui/PanelBuilder.java index 966b70c..7f74c45 100644 --- a/HeatUp/src/de/heatup/ui/PanelBuilder.java +++ b/HeatUp/src/de/heatup/ui/PanelBuilder.java @@ -1,18 +1,23 @@ package de.heatup.ui; +import java.awt.EventQueue; import java.awt.Point; +import java.util.ArrayList; import javax.swing.JPanel; import de.heatup.highscore.ScoreEntry; import de.heatup.logging.Logger; +import de.heatup.mapengine.CollisionHandler; import de.heatup.mapengine.MapEngine; import de.heatup.mapengine.SpawnAssistant; import de.heatup.objects.ImageLoader; import de.heatup.objects.InstancedObjects; import de.heatup.objects.Opponent; import de.heatup.objects.Player; +import de.heatup.timers.HardwareResetTimers; import de.heatup.ui.actionPanel.ActionControl; +import de.heatup.ui.actionPanel.ActionWatcher; public class PanelBuilder { private static JPanel actionPanel; @@ -22,18 +27,67 @@ public class PanelBuilder { public static KeyBindings kb; - public static Player player01; + private static Player player01; private static InstancedObjects instancedObjects; private static ImageLoader imageLoader; + private static int gameState = 2; /* 1=menu; 2=game running */ + private static boolean gameLoaded = false; + public static InstancedObjects getInstancedObjects() { return instancedObjects; } - - public static void tick() { + public static Player getPlayer() { + return player01; + } + public static void toMenu() { } + public static void tick() { + switch (gameState) { + case 1: + Logger.write("Menu tick"); + break; + case 2: + EventQueue.invokeLater(new Runnable() { + @Override public void run() { + ActionWatcher.tick(); + } + }); + EventQueue.invokeLater(new Runnable() { + @Override public void run() { + ActionControl.tick(); + } + }); + EventQueue.invokeLater(new Runnable() { + @Override public void run() { + HardwareResetTimers.tick(); + } + }); + for (final Player object : PanelBuilder.getInstancedObjects().getObjects()) { + EventQueue.invokeLater(new Runnable() { + @Override public void run() { + object.tick(); + } + }); + } + EventQueue.invokeLater(new Runnable() { + @Override public void run() { + CollisionHandler.tick(); + } + }); + EventQueue.invokeLater(new Runnable() { + @Override public void run() { + StatusPanelAdder.tick(); + } + }); + break; + default: + Logger.write("Invalid gameState"); + System.exit(-1); + } + } public static void setPanels(JPanel actionPanel, JPanel outerPanel, JPanel statusPanel, JPanel gamePanel) { PanelBuilder.actionPanel = actionPanel; @@ -108,7 +162,8 @@ public class PanelBuilder { movingObject.spawnAt(spawnPoint); } - + gameLoaded = true; + } public static ImageLoader getImageLoader() {