From c8aa94135680ac1e600a88f37a718dddc630e3bd Mon Sep 17 00:00:00 2001 From: andreas Date: Sat, 1 Nov 2014 21:47:18 +0100 Subject: [PATCH] =?UTF-8?q?Anpassungen=20f=C3=BCr=20statische=20und=20dyna?= =?UTF-8?q?mische=20Objekte.=20Hinzuf=C3=BCgen=20der=20Funktion=20setAutoB?= =?UTF-8?q?ounds(x,y)=20zur=20automatischen=20Bestimmung=20der=20Gr=C3=B6?= =?UTF-8?q?=C3=9Fe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/de/heatup/objects/DynamicObject.java | 17 +- HeatUp/src/de/heatup/objects/ImageLoader.java | 22 ++- HeatUp/src/de/heatup/objects/Objekt.java | 174 +++++++++--------- .../src/de/heatup/objects/StaticObject.java | 54 +++++- HeatUp/src/de/heatup/objects/logic.java | 28 +-- .../heatup/resources/images/dummy_image.png | Bin 0 -> 1467 bytes HeatUp/src/de/heatup/ui/GameInterface.java | 39 ++-- 7 files changed, 185 insertions(+), 149 deletions(-) create mode 100644 HeatUp/src/de/heatup/resources/images/dummy_image.png diff --git a/HeatUp/src/de/heatup/objects/DynamicObject.java b/HeatUp/src/de/heatup/objects/DynamicObject.java index 41a27ef..fc14ad8 100644 --- a/HeatUp/src/de/heatup/objects/DynamicObject.java +++ b/HeatUp/src/de/heatup/objects/DynamicObject.java @@ -27,13 +27,8 @@ public class DynamicObject extends JComponent{ public void paintComponent(Graphics g) { g2d = (Graphics2D)g; //this.image = Toolkit.getDefaultToolkit().getImage("src/de/heatup/resources/images/little_green_guy.png"); - try { - 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(); + if ( bf1 == null ) { + loadBufferedImage(); } //g2d.rotate(0.3, 10, 10); @@ -47,6 +42,14 @@ public class DynamicObject extends JComponent{ System.out.println("paintComponent"); } + private void loadBufferedImage() { + try { + this.bf1 = ImageIO.read(new File("src/de/heatup/resources/images/dummy_image.png")); + } catch (IOException e) { + e.printStackTrace(); + } + } + 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 index 8fc7e69..e014639 100644 --- a/HeatUp/src/de/heatup/objects/ImageLoader.java +++ b/HeatUp/src/de/heatup/objects/ImageLoader.java @@ -9,12 +9,10 @@ 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{ + /* + * TODO: Better solution like try catch if image not found + */ + public static BufferedImage getBufferedImage(char key) { String imageFileName; switch (key) { case 'u': @@ -30,13 +28,17 @@ public class ImageLoader { imageFileName="src/de/heatup/resources/images/little_green_guy_right.png"; break; default: - imageFileName="src/de/heatup/resources/images/25x25_orange.png"; + imageFileName="src/de/heatup/resources/images/dummy_image.png"; break; } + BufferedImage loadedBufferedImage = null; //System.out.println(imageFileName); - - - return ImageIO.read(new File(imageFileName)); + try { + loadedBufferedImage = ImageIO.read(new File(imageFileName)); + } catch (Exception e) { + // TODO: handle exception + } + return loadedBufferedImage; } diff --git a/HeatUp/src/de/heatup/objects/Objekt.java b/HeatUp/src/de/heatup/objects/Objekt.java index d99ed06..9817e3f 100644 --- a/HeatUp/src/de/heatup/objects/Objekt.java +++ b/HeatUp/src/de/heatup/objects/Objekt.java @@ -15,90 +15,94 @@ import javax.swing.JLabel; public class Objekt { - private static int numberOfInstances; - private BufferedImage objectImage; - private JLabel objectLabel; - private Point objectArea; - private Point actionArea; - public Thread t; - private char objectIdentifier; // TODO: Identifizierung für Map Engine - - 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)); - //objectLabel = new JLabel(new ImageIcon(objectImage)); - - objectImage = ImageLoader.getBufferedImage(filename); - objectLabel = new JLabel(new ImageIcon(objectImage)); - } +/* + * Deprecated + */ - /* - * Load corresponding image - */ - private String getImageFilename(char objectIdentifier) { - String objectFilename; - switch (objectIdentifier) { - case '#': - // Path - objectFilename="src/de/heatup/resources/images/25x25_black.png"; - break; - case '2': - // Hardware - objectFilename="src/de/heatup/resources/images/25x25_red.png"; - break; - case '-': - // Wall - objectFilename="src/de/heatup/resources/images/25x25_blue.png"; - break; - default: - objectFilename="src/de/heatup/resources/images/25x25_orange.png"; - break; - } - System.out.println(objectFilename); - return objectFilename; - } - - /* - * Sets position of object via int x int y - */ - public void setPosition(int x, int y) { - System.out.println(x + " " + y + " " + this.getDimensionX() + " " + this.getDimensionY()); - this.objectLabel.setBounds(x, y, this.getDimensionX(), this.getDimensionY()); - } - - public int getX() { - return this.objectLabel.getX(); - } - - public int getY() { - return this.objectLabel.getY(); - } - - public int getDimensionX() { - return this.objectImage.getWidth(); - } - - public int getDimensionY() { - return this.objectImage.getHeight(); - } - - public JLabel getLabel() { - return this.objectLabel; - } - - public char getOjectIdentifier() { - return this.objectIdentifier; - } - - public void setObjectIdentifier(char objectIdentifier) { - this.objectIdentifier = objectIdentifier; - } +// private static int numberOfInstances; +// private BufferedImage objectImage; +// private JLabel objectLabel; +// private Point objectArea; +// private Point actionArea; +// public Thread t; +// private char objectIdentifier; // TODO: Identifizierung für Map Engine +// +// 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)); +// //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 '#': +// // Path +// objectFilename="src/de/heatup/resources/images/25x25_black.png"; +// break; +// case '2': +// // Hardware +// objectFilename="src/de/heatup/resources/images/25x25_red.png"; +// break; +// case '-': +// // Wall +// objectFilename="src/de/heatup/resources/images/25x25_blue.png"; +// break; +// default: +// objectFilename="src/de/heatup/resources/images/25x25_orange.png"; +// break; +// } +// System.out.println(objectFilename); +// return objectFilename; +// } +// +// /* +// * Sets position of object via int x int y +// */ +// public void setPosition(int x, int y) { +// System.out.println(x + " " + y + " " + this.getDimensionX() + " " + this.getDimensionY()); +// this.objectLabel.setBounds(x, y, this.getDimensionX(), this.getDimensionY()); +// } +// +// public int getX() { +// return this.objectLabel.getX(); +// } +// +// public int getY() { +// return this.objectLabel.getY(); +// } +// +// public int getDimensionX() { +// return this.objectImage.getWidth(); +// } +// +// public int getDimensionY() { +// return this.objectImage.getHeight(); +// } +// +// public JLabel getLabel() { +// return this.objectLabel; +// } +// +// public char getOjectIdentifier() { +// return this.objectIdentifier; +// } +// +// public void setObjectIdentifier(char objectIdentifier) { +// this.objectIdentifier = objectIdentifier; +// } } diff --git a/HeatUp/src/de/heatup/objects/StaticObject.java b/HeatUp/src/de/heatup/objects/StaticObject.java index 09f52cc..6f52bc7 100644 --- a/HeatUp/src/de/heatup/objects/StaticObject.java +++ b/HeatUp/src/de/heatup/objects/StaticObject.java @@ -2,6 +2,7 @@ package de.heatup.objects; import java.awt.Graphics; import java.awt.Graphics2D; +import java.awt.Point; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; @@ -18,29 +19,62 @@ public class StaticObject extends JComponent { //private Image image; private BufferedImage bf1; private Graphics2D g2d; + private double rescaleFactor = 0.0; + private Point location; + private char staticObjectType; + private int staticObjectWidth; + private int staticObjectHeight; - public StaticObject() { + /* + * #: Path + * -: Wall + * 0 - 9: Hardware + */ + public StaticObject(char staticObjectType, Point location, int staticObjectWidth, int staticObjectHeight) { + this.staticObjectType = staticObjectType; + this.location = location; + this.staticObjectWidth = staticObjectWidth; + this.staticObjectHeight = staticObjectHeight; + loadBufferedImage(); + } + public StaticObject(char staticObjectType, Point location) { + this(staticObjectType, location, 25, 25); } public void paintComponent(Graphics g) { + this.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")); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + if ( bf1 == null ) { + loadBufferedImage(); } System.out.println(this.bf1.getWidth() + " " + this.bf1.getHeight()); //g2d.rotate(0.2, 10, 10); - //g2d.scale(1.5, 1.5); + + if ( rescaleFactor != 0.0 ) { + g2d.scale(rescaleFactor, rescaleFactor); + } g2d.drawImage(bf1, 0, 0, this); g2d.finalize(); } - - public void reloadImage() { - + + private void loadBufferedImage() { + this.bf1 = ImageLoader.getBufferedImage(this.staticObjectType); } + + public void setImage(BufferedImage image) { + this.bf1 = image; + } + + public void setRescale(double rescaleFactor) { + this.rescaleFactor = rescaleFactor; + //this.setBounds(x, y, width, height); + } + + public void setAutoBounds(int x, int y) { + this.setBounds(x, y, this.bf1.getWidth(), this.bf1.getHeight()); + } + } diff --git a/HeatUp/src/de/heatup/objects/logic.java b/HeatUp/src/de/heatup/objects/logic.java index 64b3f00..a85768b 100644 --- a/HeatUp/src/de/heatup/objects/logic.java +++ b/HeatUp/src/de/heatup/objects/logic.java @@ -58,42 +58,22 @@ 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(); - } + dynObj.setImage(ImageLoader.getBufferedImage('l')); } 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(); - } + dynObj.setImage(ImageLoader.getBufferedImage('r')); } 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(); - } + dynObj.setImage(ImageLoader.getBufferedImage('u')); } 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(); - } + dynObj.setImage(ImageLoader.getBufferedImage('d')); } else { move = 0; mx=0; diff --git a/HeatUp/src/de/heatup/resources/images/dummy_image.png b/HeatUp/src/de/heatup/resources/images/dummy_image.png new file mode 100644 index 0000000000000000000000000000000000000000..cbf9e7bbf018dae1dd6ec49e7bbb5d8abab9bed3 GIT binary patch literal 1467 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoY)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqH=_tA>qPFO4}n6GC9V-A&iT2ysd*&~&PAz-C8;S2 z<(VZJ3hti10pX2&;tUL|%APKcAr-gY&WX>E36(fnKlyIfzllepaztxitXjBs*~M!r z0&nK)H026;EsUBXmh8tHCuT zkXzSfpHFhiZ0-5Cn2ecuKDu@XcEohMHMq8fzgRZs>X*VvcT0i}O7&fsUgW2_x}sN^ zq2^TPsuhn}`Bc`=%a?e}IBVsiK0Uindrr+uwl5EOU3K+rcy~C@^XlKPSMTv<&93O? zx6S5%YTVPd{7OQ76JP>P3yT)vAHl9J|v2ooKlm7*i&)Up4JIC=iC)HTdY2Ndgv?+>iHxJL= zbHX_C>LXF**fTCY(tqAY2G8lX?2oNjczws+oadQVFB058)xW>wIVE<>MJLH}CW8Zo z_a126u6X%B^T9^G>6>P$wp32LHYdC2*a@{|(Qm~j&Z#%ou`fMfApYVR%YFl~9k-7= zU6uRxnmfW}N4M55OR*gX^;6zXo3dfb1`Yw21~lxzCARyoqy*D1$tQNRHgvFTa*q)a z54W3Lcy-NFrud5k7^Fk{6C7@9`0DfB7_g9dkij;L zili(K7i_vwvNtN-{>IJOtk1rrZGL-OEx>zqn?dTvyrQLLMN>T2864K-X){o~ z_EDp@gt_9{qp9}sPp(ej6igEK4GB0Fxv$jc;uY1*eQ|3y%gZck$;=DzWSy|je75I( zvqrP1A2WjYoLA&&)2n)!R)5MeZ*OKgUwZ969Y--iuZjsk7s|CWym)M|_RZ3%d*>|B zUTncEvwX7Lv=0SEQTdNGvsRp6xz6SOw&{&2K+}3nf;=tXx@4+*sXonFVwkI&cVhXz zCSAv)eF|UZ9Nzx=0sGSDHMfNVa<;E^UE8u(&iG1L%at4hjuWK{&6|8gOd0(`Uo2IL ze?Iq#@QH7aS*$EPOtW968>rUpTE6Ug@YZiJaa^|2qOm2_j(NY8;=Ddt`)z9VZK=?B zYOydad2{ooskVR4oj*Av@1s%Z)^B^XGfF~V++6WuQEZdYstfB>{y&X6m9X`a)5#pG z--T)g-O~fMig#Xg^FFmv_FRl#>%B8oa?dCBgp^zqN(gVAspY9|_t1OMn?>!-pI1Hc z30*5YQ>(;WH23`LQXN&908!a%0l!x-a&0)j{dm@?Y;7kN4kZUv?5N<-7umYfw=a@= zO7=yL3CYuBHb0r6dR)gcEtS