From 2ea61e74355903695bab91333b2aeeb37968355c Mon Sep 17 00:00:00 2001 From: andreas Date: Sat, 1 Nov 2014 20:11:36 +0100 Subject: [PATCH] =?UTF-8?q?Anpassungen=20GameInterface=20f=C3=BCr=20Graphi?= =?UTF-8?q?s2d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/de/heatup/objects/DynamicObject.java | 16 +- HeatUp/src/de/heatup/ui/GameInterface.java | 154 ++++++------------ 2 files changed, 64 insertions(+), 106 deletions(-) diff --git a/HeatUp/src/de/heatup/objects/DynamicObject.java b/HeatUp/src/de/heatup/objects/DynamicObject.java index 41262c9..41a27ef 100644 --- a/HeatUp/src/de/heatup/objects/DynamicObject.java +++ b/HeatUp/src/de/heatup/objects/DynamicObject.java @@ -18,12 +18,14 @@ public class DynamicObject extends JComponent{ private static final long serialVersionUID = 1L; //private Image image; private BufferedImage bf1; + private Graphics2D g2d; + private double rescaleFactor = 0.0; public DynamicObject() { } public void paintComponent(Graphics g) { - Graphics2D g2d = (Graphics2D)g; + g2d = (Graphics2D)g; //this.image = Toolkit.getDefaultToolkit().getImage("src/de/heatup/resources/images/little_green_guy.png"); try { if ( bf1 == null ) { @@ -35,17 +37,23 @@ public class DynamicObject extends JComponent{ } //g2d.rotate(0.3, 10, 10); - //g2d.scale(1.0, 1.0); + if ( rescaleFactor != 0.0 ) { + g2d.scale(rescaleFactor, rescaleFactor); + } //g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); g2d.drawImage(bf1, 0, 0, this); //g2d.setStroke(new BasicStroke(8.0f)); g2d.finalize(); + System.out.println("paintComponent"); } public void setImage(BufferedImage image) { this.bf1 = image; } - - + public void setRescale(double rescaleFactor) { + this.rescaleFactor = rescaleFactor; + //this.setBounds(x, y, width, height); + } + } diff --git a/HeatUp/src/de/heatup/ui/GameInterface.java b/HeatUp/src/de/heatup/ui/GameInterface.java index 80537ae..83c7428 100644 --- a/HeatUp/src/de/heatup/ui/GameInterface.java +++ b/HeatUp/src/de/heatup/ui/GameInterface.java @@ -1,152 +1,102 @@ package de.heatup.ui; import java.awt.BorderLayout; import java.awt.Dimension; +import java.awt.EventQueue; import java.awt.GridLayout; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.image.BufferedImage; import java.io.IOException; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JPanel; -import de.heatup.objects.Gegner; -import de.heatup.objects.Objekt; - - +import de.heatup.objects.DynamicObject; +import de.heatup.objects.StaticObject; +import de.heatup.objects.logic; public class GameInterface extends JFrame { + /** + * + */ + private static final long serialVersionUID = 1L; private JPanel outerPanel; private JPanel statusPanel; private JPanel gamePanel; private JPanel actionPanel; - private BufferedImage image; + //private BufferedImage image; - - public GameInterface() throws IOException { - setTitle("HeatUP!"); - setDefaultCloseOperation(EXIT_ON_CLOSE); - setVisible(true); - setResizable(true); - + public void createGUI() { + final JFrame frame = new JFrame(); + + frame.setTitle("HeatUP!"); + frame.setDefaultCloseOperation(EXIT_ON_CLOSE); + frame.setVisible(true); + frame.setResizable(true); + //frame.createBufferStrategy(2); - createLayout(); - pack(); - } - - public void createLayout() throws IOException { - /* - * outerPanel ist der Rahmen in dem das Spielfeld und der statusFrame vereinigt werden - */ outerPanel = new JPanel(); outerPanel.setLayout(new BorderLayout()); outerPanel.setBorder(BorderFactory.createTitledBorder("outerPanel")); outerPanel.setVisible(true); - /* - * statusPanel enthält Elemente wie Score, Zeit, Level etc. - */ statusPanel = new JPanel(); statusPanel.setLayout(new GridLayout(1,4)); statusPanel.setPreferredSize(new Dimension(800,80)); statusPanel.setBorder(BorderFactory.createTitledBorder("statusPanel")); - /* - * gamePanel enthält das Spielfeld - */ + gamePanel = new JPanel(); gamePanel.setLayout(null); gamePanel.setPreferredSize(new Dimension(800,600)); gamePanel.setBorder(BorderFactory.createTitledBorder("gamePanel")); - /* - * actionPanel enthält Informationen zum durchführen einer Tätigkeit - */ + actionPanel = new JPanel(); actionPanel.setLayout(new GridLayout(1,1)); actionPanel.setBorder(BorderFactory.createTitledBorder("actionPanel")); actionPanel.setPreferredSize(new Dimension(800,80)); - /* - * Panel korrekt im Layout ausrichten. - */ - this.getContentPane().add(outerPanel); + outerPanel.add(statusPanel,BorderLayout.NORTH); outerPanel.add(gamePanel,BorderLayout.CENTER); outerPanel.add(actionPanel,BorderLayout.SOUTH); + + gamePanel.add(new StaticObject()); + frame.add(outerPanel); + + + + frame.pack(); + frame.setVisible(true); + frame.repaint(); } - + /* + * We need to use EQ for EDT + */ public static void main(String[] args) throws IOException, InterruptedException { - GameInterface gameWindow = new GameInterface(); - - /* - * Gegner Routine instanzieren - */ - Gegner g1 = new Gegner(); - Gegner g2 = new Gegner(); - Gegner g3 = new Gegner(); - - //Objekt o1 = new Objekt('0'); - //o1.getLabel().setVisible(true); - - - Objekt s1 = new Objekt('0'); - Objekt s2 = new Objekt('0'); - Objekt s3 = new Objekt('0'); - Objekt s4 = new Objekt('0'); - Objekt s5 = new Objekt('0'); - Objekt s6 = new Objekt('0'); - - - /* - * Gegner auf Spielfläche hinzufügen und positionieren - */ - gameWindow.gamePanel.add(g1.getLabel()); - gameWindow.gamePanel.add(g2.getLabel()); - gameWindow.gamePanel.add(g3.getLabel()); - - //gameWindow.gamePanel.add(o1.getLabel()); - - g1.getLabel().setBounds(300, 100, 20, 20); - g2.getLabel().setBounds(300, 200, 20, 20); - g3.getLabel().setBounds(300, 300, 20, 20); - - //Objekt bg = new Objekt("images/bg_gray.png"); - //bg.setPosition(0, 0); - - gameWindow.gamePanel.add(s1.getLabel()); - gameWindow.gamePanel.add(s2.getLabel()); - gameWindow.gamePanel.add(s3.getLabel()); - gameWindow.gamePanel.add(s4.getLabel()); - gameWindow.gamePanel.add(s5.getLabel()); - gameWindow.gamePanel.add(s6.getLabel()); - //gameWindow.gamePanel.add(bg.getLabel()); - - //bg.getLabel().repaint(); - - //gameWindow.gamePanel.setComponentZOrder(o1.getLabel(), 0); - //gameWindow.gamePanel.setComponentZOrder(bg.getLabel(), 5); - gameWindow.gamePanel.setComponentZOrder(g1.getLabel(), 1); - gameWindow.gamePanel.setComponentZOrder(g2.getLabel(), 1); - gameWindow.gamePanel.setComponentZOrder(g3.getLabel(), 1); - gameWindow.gamePanel.setComponentZOrder(s1.getLabel(), 2); - gameWindow.gamePanel.setComponentZOrder(s2.getLabel(), 2); - gameWindow.gamePanel.setComponentZOrder(s3.getLabel(), 2); - gameWindow.gamePanel.setComponentZOrder(s4.getLabel(), 2); - gameWindow.gamePanel.setComponentZOrder(s5.getLabel(), 2); - gameWindow.gamePanel.setComponentZOrder(s6.getLabel(), 2); - - s1.setPosition(0, 0); - s2.setPosition(25, 0); - s3.setPosition(50, 0); - s4.setPosition(75, 0); - - + EventQueue.invokeLater(new Runnable() { + @Override + public void run() { + GameInterface gameWindow = new GameInterface(); + gameWindow.createGUI(); + + DynamicObject opponent1 = new DynamicObject(); + opponent1.setBounds(0, 0, opponent1.getWidth(), opponent1.getHeight()); + gameWindow.gamePanel.add(opponent1); + + DynamicObject opponent2 = new DynamicObject(); + opponent2.setBounds(0, 0, opponent2.getWidth(), opponent2.getWidth()); + gameWindow.gamePanel.add(opponent2); + + + logic.startMovement(opponent1); + logic.startMovement(opponent2); + opponent1.setRescale(0.4); + } + }); } public JPanel getGamePanel() {