Merge branch 'master' of github.com:jokerx3/prp

This commit is contained in:
andreas
2014-12-08 21:03:38 +01:00
8 changed files with 244 additions and 65 deletions
@@ -1,16 +1,147 @@
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;
/**
*
* @author daniel
*
*/
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<ScoreEntry> 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;
}
}
}
@@ -4,29 +4,33 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class MapHighscore implements Serializable {
/**
*
* @author daniel
*
*/
public class MapHighscores implements Serializable {
private static final long serialVersionUID = 1L;
private Map<Integer, ArrayList<Score>> highscoreOfAllMaps = new HashMap<Integer, ArrayList<Score>>();
private Map<Integer, ArrayList<ScoreEntry>> highscoreOfAllMaps = new HashMap<Integer, ArrayList<ScoreEntry>>();
public ArrayList<Score> getHighscores(int mapHash) {
protected ArrayList<ScoreEntry> getHighscores(int mapHash) {
if (highscoreOfAllMaps.get(mapHash) == null) {
ArrayList<Score> mapHighscores = new ArrayList<Score>();
ArrayList<ScoreEntry> mapHighscores = new ArrayList<ScoreEntry>();
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<Score> mapHighscores = highscoreOfAllMaps.get(mapHash);
ArrayList<ScoreEntry> mapHighscores = highscoreOfAllMaps.get(mapHash);
ArrayList<Score> newMapHighscores = new ArrayList<Score>();
ArrayList<ScoreEntry> newMapHighscores = new ArrayList<ScoreEntry>();
int i = 0;
@@ -35,7 +39,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;
}
@@ -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;
}
@@ -34,7 +34,7 @@ public class MapEngine {
private static String mapString = "";
private final HighscoreHandler mapHighscore;
private HighscoreHandler highscoreHandler;
HashMap<Character, ArrayList<Point>> allMapTiles = new HashMap<Character, ArrayList<Point>>();
ArrayList<Character> availableHardwareTileTypes = new ArrayList<Character>();
@@ -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();
}
}
+4 -35
View File
@@ -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;
@@ -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)
+73 -2
View File
@@ -1,16 +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;
@@ -20,17 +27,66 @@ 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 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) {
@@ -86,12 +142,27 @@ public class PanelBuilder {
}
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();
movingObject.spawnAt(spawnPoint);
}
gameLoaded = true;
}
@@ -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(){
@@ -19,16 +19,16 @@ public class ActionWatcher{
}
public static void tick(){
//Infotext, wenn man in der nhe 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 Hardwarestck 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;