Gameloop zerpflueckt und Panelbuilder geschrieben

Ausserdem eine klasse zum sammeln von instanziierten Objekten gebaut.
Macht alles dynamischer!
This commit is contained in:
toksikk
2014-11-25 14:31:54 +01:00
parent 00fe3fa844
commit 447e1355e0
5 changed files with 147 additions and 135 deletions
-5
View File
@@ -4,11 +4,6 @@ package de.heatup.cfg;
* Bitte hier eure Magicnumbers eintragen * Bitte hier eure Magicnumbers eintragen
*/ */
public class Config { public class Config {
/*
* Attribute
* de.heatup.ui.GameLoop
*/
public static int currentTickNr = 0;
/* /*
* Attribute * Attribute
* de.heatup.mapengine.* * de.heatup.mapengine.*
@@ -1,5 +1,5 @@
package de.heatup.objects; package de.heatup.objects;
public class PowerUpHandler { public class PowerUpHandler {
private static
} }
+35 -129
View File
@@ -31,21 +31,18 @@ public class GameLoopD extends JFrame implements Runnable {
private static boolean pause = false; private static boolean pause = false;
private Thread thread; private Thread thread;
/**
* @deprecated
* BITTE DEN GETTER VERWENDEN!!!!11111ELF
*/
public static Player player01;
private static JPanel outerPanel; private static JPanel outerPanel;
private static JPanel statusPanel; private static JPanel statusPanel;
private static JPanel gamePanel; private static JPanel gamePanel;
private static JPanel actionPanel; private static JPanel actionPanel;
public static KeyBindings kb;
public static Player player01;
public static Opponent opponent01;
public static Opponent opponent02;
public static Opponent opponent03;
public static Opponent opponent04;
public static Opponent opponent05;
public static Opponent opponent06;
public GameLoopD(){ public GameLoopD(){
setTitle("HeatUP!"); setTitle("HeatUP!");
setDefaultCloseOperation(EXIT_ON_CLOSE); setDefaultCloseOperation(EXIT_ON_CLOSE);
@@ -58,12 +55,12 @@ public class GameLoopD extends JFrame implements Runnable {
statusPanel = new JPanel(); statusPanel = new JPanel();
statusPanel.setPreferredSize(new Dimension(800,80)); statusPanel.setPreferredSize(new Dimension(800,80));
statusPanel.setFocusable(false); statusPanel.setFocusable(true);
gamePanel = new JPanel(); gamePanel = new JPanel();
gamePanel.setLayout(null); gamePanel.setLayout(null);
gamePanel.setPreferredSize(new Dimension(800,600)); gamePanel.setPreferredSize(new Dimension(800,600));
gamePanel.setFocusable(true); gamePanel.setFocusable(false);
actionPanel = new JPanel(); actionPanel = new JPanel();
actionPanel.setLayout(new GridLayout(1,1)); actionPanel.setLayout(new GridLayout(1,1));
@@ -78,68 +75,17 @@ public class GameLoopD extends JFrame implements Runnable {
pack(); pack();
setVisible(true); setVisible(true);
// StatusPanel bauen /*
StatusPanelAdder.setPanel(statusPanel); * hier menue bauen
StatusPanelAdder.createPanel(); */
// ActionPanel bauen PanelBuilder.setPanels(actionPanel, outerPanel, statusPanel, gamePanel);
ActionControl.setPanel(actionPanel); PanelBuilder.startMenu();
/*
* entfernen wenn getter verwendet wird.
player01 = new Player(); // !!! PLAYER IMMER ZUERST INSTANZIIEREN, DANACH OPPONENTS !!! */
// Query.setPlayer(player01); player01 = PanelBuilder.player01;
gamePanel.add(player01);
player01.setBounds(25,25,25, 25); // !!! MUSS DRIN BLEIBEN TROTZ NACHTRÄGLICHES SPAWN UMSETZEN !!!
// Gegner hinzufügen
opponent01 = new Opponent();
gamePanel.add(opponent01);
opponent01.setBounds(50,50,25,25);
opponent02 = new Opponent();
gamePanel.add(opponent02);
opponent02.setBounds(150,150,25,25);
opponent03 = new Opponent();
gamePanel.add(opponent03);
opponent03.setBounds(550,450,25,25);
opponent04 = new Opponent();
gamePanel.add(opponent04);
opponent04.setBounds(50,50,25,25);
opponent05 = new Opponent();
gamePanel.add(opponent05);
opponent05.setBounds(150,150,25,25);
opponent06 = new Opponent();
gamePanel.add(opponent06);
opponent06.setBounds(550,450,25,25);
kb = new KeyBindings(player01);
gamePanel.addKeyListener(kb);
MapEngine me = new MapEngine(1);
me.addAllToPanel(gamePanel);
Point spawnPoint = SpawnAssistant.getPathLocationOnGrid();
player01.spawnAt(spawnPoint);
Point spawnPoint2 = SpawnAssistant.getPathLocationOnGrid();
opponent01.spawnAt(spawnPoint2);
Point spawnPoint3 = SpawnAssistant.getPathLocationOnGrid();
opponent02.spawnAt(spawnPoint3);
Point spawnPoint4 = SpawnAssistant.getPathLocationOnGrid();
opponent03.spawnAt(spawnPoint4);
Point spawnPoint5 = SpawnAssistant.getPathLocationOnGrid();
opponent04.spawnAt(spawnPoint5);
Point spawnPoint6 = SpawnAssistant.getPathLocationOnGrid();
opponent05.spawnAt(spawnPoint6);
Point spawnPoint7 = SpawnAssistant.getPathLocationOnGrid();
opponent06.spawnAt(spawnPoint7);
actionPanel.setVisible(true); actionPanel.setVisible(true);
outerPanel.setVisible(true); outerPanel.setVisible(true);
@@ -148,15 +94,14 @@ public class GameLoopD extends JFrame implements Runnable {
} }
public static void main(String[] args) { public static void main(String[] args) {
// Logging ausgabe auf Console aktivieren bzw. deaktivieren. // Logging ausgabe auf Console aktivieren bzw. deaktivieren.
Logger.enableLogging(); Logger.enableLogging();
/*
* hier drin bauen wir unser ui zusammen.
*/
EventQueue.invokeLater(new Runnable() { EventQueue.invokeLater(new Runnable() {
@Override @Override
@@ -178,12 +123,6 @@ public class GameLoopD extends JFrame implements Runnable {
//GameInterface.getGamePanel().repaint(); //GameInterface.getGamePanel().repaint();
//GameInterface.getGamePanel().setComponentZOrder(dynO1, 1); //GameInterface.getGamePanel().setComponentZOrder(dynO1, 1);
//GameInterface.getGamePanel().add(dynO1); //GameInterface.getGamePanel().add(dynO1);
/*
* ende
*/
} }
@@ -197,7 +136,7 @@ public class GameLoopD extends JFrame implements Runnable {
} }
public static Player getPlayer() { public static Player getPlayer() {
return player01; return PanelBuilder.player01;
} }
public synchronized void start() { public synchronized void start() {
@@ -249,12 +188,12 @@ public class GameLoopD extends JFrame implements Runnable {
render(); render();
frames++; frames++;
try { // try {
thread.sleep(1); // entlastet die cpu massiv. // thread.sleep(1); // entlastet die cpu massiv.
} catch (InterruptedException e) { // } catch (InterruptedException e) {
// TODO Auto-generated catch block // // TODO Auto-generated catch block
e.printStackTrace(); // e.printStackTrace();
} // }
if (System.currentTimeMillis() - timer > 1000) { if (System.currentTimeMillis() - timer > 1000) {
timer += 1000; timer += 1000;
@@ -268,12 +207,7 @@ public class GameLoopD extends JFrame implements Runnable {
} }
// alles was geupdatet werden muss hier rein // alles was geupdatet werden muss hier rein
private void tick() { private void tick() {
if (Config.currentTickNr >= 60) { PanelBuilder.kb.checkKeyActivity();
Config.currentTickNr = 0;
} else {
Config.currentTickNr++;
}
kb.checkKeyActivity();
if (!pause) { if (!pause) {
EventQueue.invokeLater(new Runnable() { EventQueue.invokeLater(new Runnable() {
@Override public void run() { @Override public void run() {
@@ -290,41 +224,13 @@ public class GameLoopD extends JFrame implements Runnable {
HardwareResetTimers.tick(); HardwareResetTimers.tick();
} }
}); });
EventQueue.invokeLater(new Runnable() { for (final Player object : PanelBuilder.getInstancedObjects().getObjects()) {
@Override public void run() { EventQueue.invokeLater(new Runnable() {
player01.tick(); @Override public void run() {
} object.tick();
}); }
EventQueue.invokeLater(new Runnable() { });
@Override public void run() { }
opponent01.tick();
}
});
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
opponent02.tick();
}
});
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
opponent03.tick();
}
});
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
opponent04.tick();
}
});
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
opponent05.tick();
}
});
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
opponent06.tick();
}
});
EventQueue.invokeLater(new Runnable() { EventQueue.invokeLater(new Runnable() {
@Override public void run() { @Override public void run() {
CollisionHandler.tick(); CollisionHandler.tick();
@@ -0,0 +1,19 @@
package de.heatup.testing;
import java.util.ArrayList;
public class InstancedObjects {
private static ArrayList<Player> objects;
public InstancedObjects() {
objects = new ArrayList<Player>();
}
public ArrayList<Player> getObjects() {
return objects;
}
public void addObject(Player object) {
InstancedObjects.objects.add(object);
}
}
@@ -0,0 +1,92 @@
package de.heatup.testing;
import java.awt.Point;
import javax.swing.JPanel;
import de.heatup.mapengine.MapEngine;
import de.heatup.mapengine.SpawnAssistant;
import de.heatup.ui.KeyBindings;
import de.heatup.ui.StatusPanelAdder;
import de.heatup.ui.actionPanel.ActionControl;
public class PanelBuilder {
private static JPanel actionPanel;
private static JPanel outerPanel;
private static JPanel statusPanel;
private static JPanel gamePanel;
public static KeyBindings kb;
public static Player player01;
private static InstancedObjects instancedObjects;
public static InstancedObjects getInstancedObjects() {
return instancedObjects;
}
public static void tick() {
}
public static void setPanels(JPanel actionPanel, JPanel outerPanel, JPanel statusPanel, JPanel gamePanel) {
PanelBuilder.actionPanel = actionPanel;
PanelBuilder.outerPanel = outerPanel;
PanelBuilder.statusPanel = statusPanel;
PanelBuilder.gamePanel = gamePanel;
}
public static void startMenu() {
// StatusPanel bauen
StatusPanelAdder.setPanel(statusPanel);
StatusPanelAdder.createPanel();
// ActionPanel bauen
ActionControl.setPanel(actionPanel);
createGame(1); /* wird eigentlich vom menue aufgerufen */
}
private static void createGame(int map) {
instancedObjects = new InstancedObjects();
player01 = new Player(); // !!! PLAYER IMMER ZUERST INSTANZIIEREN, DANACH OPPONENTS !!!
gamePanel.add(player01);
player01.setBounds(25,25,25, 25); // !!! MUSS DRIN BLEIBEN TROTZ NACHTRÄGLICHES SPAWN UMSETZEN !!!
instancedObjects.getObjects().add(player01);
// Gegner hinzufügen
for (int i = 0; i<10000; i++) {
Opponent newOpponent = new Opponent();
gamePanel.add(newOpponent);
newOpponent.setBounds(50, 50, 25, 25);
instancedObjects.getObjects().add(newOpponent);
}
kb = new KeyBindings(player01);
statusPanel.addKeyListener(kb);
MapEngine me;
if (map > 0) {
me = new MapEngine(map);
} else {
me = new MapEngine();
}
me.addAllToPanel(gamePanel);
for (Player movingObject : instancedObjects.getObjects()) {
Point spawnPoint = SpawnAssistant.getPathLocationOnGrid();
movingObject.spawnAt(spawnPoint);
}
}
}