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;
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;
}
}
@@ -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));
}
}
+14 -18
View File
@@ -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:
+27 -2
View File
@@ -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) {
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