mirror of
https://github.com/jokerx3/HeatUp
synced 2026-07-27 10:09:44 +02:00
Gameloop zerpflueckt und Panelbuilder geschrieben
Ausserdem eine klasse zum sammeln von instanziierten Objekten gebaut. Macht alles dynamischer!
This commit is contained in:
@@ -4,11 +4,6 @@ package de.heatup.cfg;
|
||||
* Bitte hier eure Magicnumbers eintragen
|
||||
*/
|
||||
public class Config {
|
||||
/*
|
||||
* Attribute
|
||||
* de.heatup.ui.GameLoop
|
||||
*/
|
||||
public static int currentTickNr = 0;
|
||||
/*
|
||||
* Attribute
|
||||
* de.heatup.mapengine.*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package de.heatup.objects;
|
||||
|
||||
public class PowerUpHandler {
|
||||
private static
|
||||
|
||||
}
|
||||
|
||||
@@ -32,20 +32,17 @@ public class GameLoopD extends JFrame implements Runnable {
|
||||
|
||||
private Thread thread;
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* BITTE DEN GETTER VERWENDEN!!!!11111ELF
|
||||
*/
|
||||
public static Player player01;
|
||||
|
||||
private static JPanel outerPanel;
|
||||
private static JPanel statusPanel;
|
||||
private static JPanel gamePanel;
|
||||
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(){
|
||||
setTitle("HeatUP!");
|
||||
setDefaultCloseOperation(EXIT_ON_CLOSE);
|
||||
@@ -58,12 +55,12 @@ public class GameLoopD extends JFrame implements Runnable {
|
||||
|
||||
statusPanel = new JPanel();
|
||||
statusPanel.setPreferredSize(new Dimension(800,80));
|
||||
statusPanel.setFocusable(false);
|
||||
statusPanel.setFocusable(true);
|
||||
|
||||
gamePanel = new JPanel();
|
||||
gamePanel.setLayout(null);
|
||||
gamePanel.setPreferredSize(new Dimension(800,600));
|
||||
gamePanel.setFocusable(true);
|
||||
gamePanel.setFocusable(false);
|
||||
|
||||
actionPanel = new JPanel();
|
||||
actionPanel.setLayout(new GridLayout(1,1));
|
||||
@@ -78,69 +75,18 @@ public class GameLoopD extends JFrame implements Runnable {
|
||||
pack();
|
||||
setVisible(true);
|
||||
|
||||
// StatusPanel bauen
|
||||
StatusPanelAdder.setPanel(statusPanel);
|
||||
StatusPanelAdder.createPanel();
|
||||
// ActionPanel bauen
|
||||
ActionControl.setPanel(actionPanel);
|
||||
/*
|
||||
* hier menue bauen
|
||||
*/
|
||||
PanelBuilder.setPanels(actionPanel, outerPanel, statusPanel, gamePanel);
|
||||
PanelBuilder.startMenu();
|
||||
|
||||
/*
|
||||
* entfernen wenn getter verwendet wird.
|
||||
*/
|
||||
player01 = PanelBuilder.player01;
|
||||
|
||||
|
||||
player01 = new Player(); // !!! PLAYER IMMER ZUERST INSTANZIIEREN, DANACH OPPONENTS !!!
|
||||
// Query.setPlayer(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);
|
||||
outerPanel.setVisible(true);
|
||||
statusPanel.setVisible(true);
|
||||
@@ -148,15 +94,14 @@ public class GameLoopD extends JFrame implements Runnable {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
// Logging ausgabe auf Console aktivieren bzw. deaktivieren.
|
||||
Logger.enableLogging();
|
||||
|
||||
/*
|
||||
* hier drin bauen wir unser ui zusammen.
|
||||
*/
|
||||
|
||||
EventQueue.invokeLater(new Runnable() {
|
||||
|
||||
@Override
|
||||
@@ -180,12 +125,6 @@ public class GameLoopD extends JFrame implements Runnable {
|
||||
//GameInterface.getGamePanel().add(dynO1);
|
||||
|
||||
|
||||
/*
|
||||
* ende
|
||||
*/
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static synchronized void pause() {
|
||||
@@ -197,7 +136,7 @@ public class GameLoopD extends JFrame implements Runnable {
|
||||
}
|
||||
|
||||
public static Player getPlayer() {
|
||||
return player01;
|
||||
return PanelBuilder.player01;
|
||||
}
|
||||
|
||||
public synchronized void start() {
|
||||
@@ -249,12 +188,12 @@ public class GameLoopD extends JFrame implements Runnable {
|
||||
render();
|
||||
frames++;
|
||||
|
||||
try {
|
||||
thread.sleep(1); // entlastet die cpu massiv.
|
||||
} catch (InterruptedException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
// try {
|
||||
// thread.sleep(1); // entlastet die cpu massiv.
|
||||
// } catch (InterruptedException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
|
||||
if (System.currentTimeMillis() - timer > 1000) {
|
||||
timer += 1000;
|
||||
@@ -268,12 +207,7 @@ public class GameLoopD extends JFrame implements Runnable {
|
||||
}
|
||||
// alles was geupdatet werden muss hier rein
|
||||
private void tick() {
|
||||
if (Config.currentTickNr >= 60) {
|
||||
Config.currentTickNr = 0;
|
||||
} else {
|
||||
Config.currentTickNr++;
|
||||
}
|
||||
kb.checkKeyActivity();
|
||||
PanelBuilder.kb.checkKeyActivity();
|
||||
if (!pause) {
|
||||
EventQueue.invokeLater(new Runnable() {
|
||||
@Override public void run() {
|
||||
@@ -290,41 +224,13 @@ public class GameLoopD extends JFrame implements Runnable {
|
||||
HardwareResetTimers.tick();
|
||||
}
|
||||
});
|
||||
for (final Player object : PanelBuilder.getInstancedObjects().getObjects()) {
|
||||
EventQueue.invokeLater(new Runnable() {
|
||||
@Override public void run() {
|
||||
player01.tick();
|
||||
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() {
|
||||
@Override public void run() {
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user