diff --git a/HeatUp/src/de/heatup/objects/DynamicObject.java b/HeatUp/src/de/heatup/objects/DynamicObject.java index 2d98933..41262c9 100644 --- a/HeatUp/src/de/heatup/objects/DynamicObject.java +++ b/HeatUp/src/de/heatup/objects/DynamicObject.java @@ -1,10 +1,13 @@ package de.heatup.objects; +import java.awt.BasicStroke; import java.awt.Graphics; import java.awt.Graphics2D; +import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; + import javax.imageio.ImageIO; import javax.swing.JComponent; @@ -17,24 +20,32 @@ public class DynamicObject extends JComponent{ private BufferedImage bf1; public DynamicObject() { - } public void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D)g; //this.image = Toolkit.getDefaultToolkit().getImage("src/de/heatup/resources/images/little_green_guy.png"); try { - this.bf1 = ImageIO.read(new File("src/de/heatup/resources/images/little_green_guy.png")); + if ( bf1 == null ) { + this.bf1 = ImageIO.read(new File("src/de/heatup/resources/images/little_green_guy.png")); + } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } - + //g2d.rotate(0.3, 10, 10); //g2d.scale(1.0, 1.0); //g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); g2d.drawImage(bf1, 0, 0, this); - //g2d.setStroke(new BasicStroke(1.0f)); + //g2d.setStroke(new BasicStroke(8.0f)); g2d.finalize(); } + + public void setImage(BufferedImage image) { + this.bf1 = image; + } + + + } diff --git a/HeatUp/src/de/heatup/objects/ImageLoader.java b/HeatUp/src/de/heatup/objects/ImageLoader.java new file mode 100644 index 0000000..8fc7e69 --- /dev/null +++ b/HeatUp/src/de/heatup/objects/ImageLoader.java @@ -0,0 +1,43 @@ +package de.heatup.objects; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; + +import javax.imageio.ImageIO; + + +public class ImageLoader { + + public static BufferedImage getBufferedImage(String imageFileName) throws IOException{ + return ImageIO.read(new File(imageFileName)); + + } + + public static BufferedImage getBufferedImage(char key) throws IOException{ + String imageFileName; + switch (key) { + case 'u': + imageFileName="src/de/heatup/resources/images/little_green_guy_up.png"; + break; + case 'd': + imageFileName="src/de/heatup/resources/images/little_green_guy.png"; + break; + case 'l': + imageFileName="src/de/heatup/resources/images/little_green_guy_left.png"; + break; + case 'r': + imageFileName="src/de/heatup/resources/images/little_green_guy_right.png"; + break; + default: + imageFileName="src/de/heatup/resources/images/25x25_orange.png"; + break; + } + //System.out.println(imageFileName); + + + return ImageIO.read(new File(imageFileName)); + + } + +} diff --git a/HeatUp/src/de/heatup/objects/Objekt.java b/HeatUp/src/de/heatup/objects/Objekt.java index 61fdeb6..d99ed06 100644 --- a/HeatUp/src/de/heatup/objects/Objekt.java +++ b/HeatUp/src/de/heatup/objects/Objekt.java @@ -1,5 +1,8 @@ package de.heatup.objects; +import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.Point; +import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; @@ -20,46 +23,39 @@ public class Objekt { public Thread t; private char objectIdentifier; // TODO: Identifizierung für Map Engine - /* - * TODO: Use Graphics instead of JLabel - */ - - /* - * This constructor is deprecated - */ - public Objekt(String filename) throws IOException { - numberOfInstances++; - objectImage = ImageIO.read(new File(filename)); - objectLabel = new JLabel(new ImageIcon(objectImage)); - } - public Objekt(char objectIdentifier) throws IOException { numberOfInstances++; setObjectIdentifier(objectIdentifier); setObjectImage(); } - + private void setObjectImage() throws IOException { String filename = getImageFilename(objectIdentifier); System.out.println("Filename: " + filename); - objectImage = ImageIO.read(new File(filename)); + //objectImage = ImageIO.read(new File(filename)); + //objectLabel = new JLabel(new ImageIcon(objectImage)); + + objectImage = ImageLoader.getBufferedImage(filename); objectLabel = new JLabel(new ImageIcon(objectImage)); } + /* + * Load corresponding image + */ private String getImageFilename(char objectIdentifier) { String objectFilename; switch (objectIdentifier) { case '#': - //leiterbahn + // Path objectFilename="src/de/heatup/resources/images/25x25_black.png"; break; case '2': - //2:harware + // Hardware objectFilename="src/de/heatup/resources/images/25x25_red.png"; break; case '-': - //3:wand + // Wall objectFilename="src/de/heatup/resources/images/25x25_blue.png"; break; default: diff --git a/HeatUp/src/de/heatup/objects/logic.java b/HeatUp/src/de/heatup/objects/logic.java index 7dbe38f..64b3f00 100644 --- a/HeatUp/src/de/heatup/objects/logic.java +++ b/HeatUp/src/de/heatup/objects/logic.java @@ -1,5 +1,6 @@ package de.heatup.objects; +import java.io.IOException; import java.util.Random; @@ -57,26 +58,50 @@ public class logic { movex -= 4; mx=-4; my=0; + try { + dynObj.setImage(ImageLoader.getBufferedImage('l')); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } else if ( move == 2 && movex >= 0) { movex -= 4; mx=4; my=0; + try { + dynObj.setImage(ImageLoader.getBufferedImage('r')); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } else if (move == -1 && movey >= 0) { movey -= 4; my=-4; mx=0; + try { + dynObj.setImage(ImageLoader.getBufferedImage('u')); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } else if (move == 1 && movey >= 0) { movey -= 4; my=4; mx=0; + try { + dynObj.setImage(ImageLoader.getBufferedImage('d')); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } else { move = 0; mx=0; my=0; } dynObj.setBounds(dynObj.getX()+mx, dynObj.getY()+my, 36, 64); - //System.out.println("x: " + dynObj.getX() + " y:" + dynObj.getY()); - dynObj.repaint(); + //System.out.println("x: " + dynObj.getX() + " y: " + dynObj.getY()); + //System.out.println("h: " + dynObj.getHeight() + " w: " + dynObj.getWidth()); try { Thread.sleep(10); } catch (InterruptedException e) { diff --git a/HeatUp/src/de/heatup/resources/images/little_green_guy_left.png b/HeatUp/src/de/heatup/resources/images/little_green_guy_left.png new file mode 100644 index 0000000..797885f Binary files /dev/null and b/HeatUp/src/de/heatup/resources/images/little_green_guy_left.png differ diff --git a/HeatUp/src/de/heatup/resources/images/little_green_guy_right.png b/HeatUp/src/de/heatup/resources/images/little_green_guy_right.png new file mode 100644 index 0000000..07c8d4d Binary files /dev/null and b/HeatUp/src/de/heatup/resources/images/little_green_guy_right.png differ diff --git a/HeatUp/src/de/heatup/resources/images/little_green_guy_up.png b/HeatUp/src/de/heatup/resources/images/little_green_guy_up.png new file mode 100644 index 0000000..a268b48 Binary files /dev/null and b/HeatUp/src/de/heatup/resources/images/little_green_guy_up.png differ