Anpassungen für dynamisches Laden von Bildern abhängig von der ausgeführten Aktion

This commit is contained in:
andreas
2014-11-01 09:34:56 +01:00
parent 3d42d59331
commit 0da78bcb52
7 changed files with 99 additions and 24 deletions
@@ -1,10 +1,13 @@
package de.heatup.objects; package de.heatup.objects;
import java.awt.BasicStroke;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.swing.JComponent; import javax.swing.JComponent;
@@ -17,14 +20,15 @@ public class DynamicObject extends JComponent{
private BufferedImage bf1; private BufferedImage bf1;
public DynamicObject() { public DynamicObject() {
} }
public void paintComponent(Graphics g) { public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D)g; Graphics2D g2d = (Graphics2D)g;
//this.image = Toolkit.getDefaultToolkit().getImage("src/de/heatup/resources/images/little_green_guy.png"); //this.image = Toolkit.getDefaultToolkit().getImage("src/de/heatup/resources/images/little_green_guy.png");
try { try {
if ( bf1 == null ) {
this.bf1 = ImageIO.read(new File("src/de/heatup/resources/images/little_green_guy.png")); this.bf1 = ImageIO.read(new File("src/de/heatup/resources/images/little_green_guy.png"));
}
} catch (IOException e) { } catch (IOException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
@@ -34,7 +38,14 @@ public class DynamicObject extends JComponent{
//g2d.scale(1.0, 1.0); //g2d.scale(1.0, 1.0);
//g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); //g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
g2d.drawImage(bf1, 0, 0, this); g2d.drawImage(bf1, 0, 0, this);
//g2d.setStroke(new BasicStroke(1.0f)); //g2d.setStroke(new BasicStroke(8.0f));
g2d.finalize(); g2d.finalize();
} }
public void setImage(BufferedImage image) {
this.bf1 = image;
}
} }
@@ -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));
}
}
+13 -17
View File
@@ -1,5 +1,8 @@
package de.heatup.objects; package de.heatup.objects;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point; import java.awt.Point;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
@@ -20,19 +23,6 @@ public class Objekt {
public Thread t; public Thread t;
private char objectIdentifier; // TODO: Identifizierung für Map Engine 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 { public Objekt(char objectIdentifier) throws IOException {
numberOfInstances++; numberOfInstances++;
setObjectIdentifier(objectIdentifier); setObjectIdentifier(objectIdentifier);
@@ -43,23 +33,29 @@ public class Objekt {
private void setObjectImage() throws IOException { private void setObjectImage() throws IOException {
String filename = getImageFilename(objectIdentifier); String filename = getImageFilename(objectIdentifier);
System.out.println("Filename: " + filename); 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)); objectLabel = new JLabel(new ImageIcon(objectImage));
} }
/*
* Load corresponding image
*/
private String getImageFilename(char objectIdentifier) { private String getImageFilename(char objectIdentifier) {
String objectFilename; String objectFilename;
switch (objectIdentifier) { switch (objectIdentifier) {
case '#': case '#':
//leiterbahn // Path
objectFilename="src/de/heatup/resources/images/25x25_black.png"; objectFilename="src/de/heatup/resources/images/25x25_black.png";
break; break;
case '2': case '2':
//2:harware // Hardware
objectFilename="src/de/heatup/resources/images/25x25_red.png"; objectFilename="src/de/heatup/resources/images/25x25_red.png";
break; break;
case '-': case '-':
//3:wand // Wall
objectFilename="src/de/heatup/resources/images/25x25_blue.png"; objectFilename="src/de/heatup/resources/images/25x25_blue.png";
break; break;
default: default:
+26 -1
View File
@@ -1,5 +1,6 @@
package de.heatup.objects; package de.heatup.objects;
import java.io.IOException;
import java.util.Random; import java.util.Random;
@@ -57,18 +58,42 @@ public class logic {
movex -= 4; movex -= 4;
mx=-4; mx=-4;
my=0; my=0;
try {
dynObj.setImage(ImageLoader.getBufferedImage('l'));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if ( move == 2 && movex >= 0) { } else if ( move == 2 && movex >= 0) {
movex -= 4; movex -= 4;
mx=4; mx=4;
my=0; my=0;
try {
dynObj.setImage(ImageLoader.getBufferedImage('r'));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (move == -1 && movey >= 0) { } else if (move == -1 && movey >= 0) {
movey -= 4; movey -= 4;
my=-4; my=-4;
mx=0; mx=0;
try {
dynObj.setImage(ImageLoader.getBufferedImage('u'));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (move == 1 && movey >= 0) { } else if (move == 1 && movey >= 0) {
movey -= 4; movey -= 4;
my=4; my=4;
mx=0; mx=0;
try {
dynObj.setImage(ImageLoader.getBufferedImage('d'));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else { } else {
move = 0; move = 0;
mx=0; mx=0;
@@ -76,7 +101,7 @@ public class logic {
} }
dynObj.setBounds(dynObj.getX()+mx, dynObj.getY()+my, 36, 64); dynObj.setBounds(dynObj.getX()+mx, dynObj.getY()+my, 36, 64);
//System.out.println("x: " + dynObj.getX() + " y: " + dynObj.getY()); //System.out.println("x: " + dynObj.getX() + " y: " + dynObj.getY());
dynObj.repaint(); //System.out.println("h: " + dynObj.getHeight() + " w: " + dynObj.getWidth());
try { try {
Thread.sleep(10); Thread.sleep(10);
} catch (InterruptedException e) { } catch (InterruptedException e) {
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B