mirror of
https://github.com/jokerx3/HeatUp
synced 2026-07-27 09:59:45 +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
|
* 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
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user