From 0da78bcb528111eb65643f41574f3e3c405c579c Mon Sep 17 00:00:00 2001 From: andreas Date: Sat, 1 Nov 2014 09:34:56 +0100 Subject: [PATCH] =?UTF-8?q?Anpassungen=20f=C3=BCr=20dynamisches=20Laden=20?= =?UTF-8?q?von=20Bildern=20abh=C3=A4ngig=20von=20der=20ausgef=C3=BChrten?= =?UTF-8?q?=20Aktion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/de/heatup/objects/DynamicObject.java | 19 ++++++-- HeatUp/src/de/heatup/objects/ImageLoader.java | 43 ++++++++++++++++++ HeatUp/src/de/heatup/objects/Objekt.java | 32 ++++++------- HeatUp/src/de/heatup/objects/logic.java | 29 +++++++++++- .../images/little_green_guy_left.png | Bin 0 -> 2936 bytes .../images/little_green_guy_right.png | Bin 0 -> 2544 bytes .../resources/images/little_green_guy_up.png | Bin 0 -> 374 bytes 7 files changed, 99 insertions(+), 24 deletions(-) create mode 100644 HeatUp/src/de/heatup/objects/ImageLoader.java create mode 100644 HeatUp/src/de/heatup/resources/images/little_green_guy_left.png create mode 100644 HeatUp/src/de/heatup/resources/images/little_green_guy_right.png create mode 100644 HeatUp/src/de/heatup/resources/images/little_green_guy_up.png 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 0000000000000000000000000000000000000000..797885fe82179c9879773b7bf79a31297d6d88a9 GIT binary patch literal 2936 zcmV-;3y1WHP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{01DtqL_t(&-tC%8j3wt)$A9Ph zzN%Yw`#t@b@r>i~IEn3%V;FJf-w^Q70w;d3XCTTOl!(PyJydv5WGnUxy~X!zX8hKcfVG4{RI zGO-`@g2tX&CCf@)qp!#&sIAe`{LXg|GeyPkV z`fsQ{t%mQlCZ}hvE1=QG?*2nW|Fzwoe!0=SbHZu*l877!3d!vGV<+zP&`0{kcNl*agsI(~HV@mJ@s9*`5#WBo{C(4c^l-a3G!c6Zh( zXcY--6@H zmJoF3FQTfpP=26B|E@JT{ZubN=9<|`KvGL`te@tY3G#c#Np9^&`W;vSFd{N8Mt%vE zKOa7K@nwmlLx z!4j?>P&aVX^D~GwtezNV>C`ywTZTckM+ob4CUcmZ9B!hCc05(9Ak4Kx`Qd8X^O?>2 z4*#Br4A*xN>|l!2uEth@@wZxJ%U$|DSfy`vjg{L*h`HN;)fhoiiyLWR2GS8-^|$Ar z9*g;z;rZtMM~lwXoE|)f07NilxI*`%XYz|Ph}X}F%9F-q-$&(-hR>aBULBw-w&MMP zLO>KmM&8r6k1vF&S(a}8t|6NAM4qjHzUTLG`cl?v^6Oy;m74J3D% zL_qeBt~!+Q{^viz@N4r7%q*cs4hRTV6uv9U7Z8prpq)Sn9dH(tTcqhQnMIu0et{ky zT01eq+VNo;7dvF<*NKhZlwo%s6jKXD^X$ZP8pG3Sm=R}&On-VzoPnrl8PQHa+a9fA z-8il3Nw2aI@z6}^jy2I8Vo!af`d}UW)>|$09uyz>)ZOV&_AT3=-fD8UMVLD?P%?)d zNRYkGU%_I>(|%_fq!_>f<4oUZsYdZmrK6dvXBl>K&`}RwqC2&kc9zf)CNuFFtj`kh( ziv@A9gedhi()Rd{hovs2=`j5%CUb}df)d*SI)Sh(Nba!x39@!H-$wRiR(3m z5NnAmwx*B0lG*`YL{fwY#mQ&gcvGkXq3!D%Ypnv@SdJY?DKkf0E(vW9-GGJ&Q8v8N zCMLG#tfs5I=IVQBC*W5~{8AS)l;Xy6Okyr0U3ZxTP7TuMFoP+e+m*Aywvrg^a04@# zqGcqutJ(wI04it|(Wc;aeF+zd@rw5x<}m$2N$V| z0gVur>Oql!QRiP=c>E{dJoM$e{!${RfQy^Y>pV&5?IEvp-(04&E7-A&7lNK1Zw+?f7~dQhHFSN1n`*9BHCn@vRPit`nE?0zw zqRt(u^|hF~e8p~fra!@CuBMue(b^8Cn9Ob#!bn`H?#w?uCi$6>g^fXRms+*?eTVNA z^v`|k3R7^Gp)sP*P8=u(vU^{ucNzozTeaBSBstlb^^#DfBgN?i9~%~sg#V1wjHA9l2XNo_ldy)^d7>8I85 z{4T|q-8a5&#I%WwA{-Tw-CFQ~9#S8v-dQ6qm4sG7Tq&`KvReLbo_~LRn4qV{$U~}p z=28h8J5zH%On$~bX>9%i5ho&_+Dh}Q0kql8Hxxp0YER2ua9Ot{x$VWsUr@!CbYZ?6*fBFXC@@_TzJ zLTp!aoApHim8RA=Glq2 zh$O&-h~y|jP_zhyb~O`2{HiGHz=T-I?LaC3+6~0@im=q(y?xRR;lEVkTg6Q1`mO7M zuDw#cI#Y9RwtslxoB7#^Zxi)HAQ6#4AV*pAQvLqo*IxVE{OrWHv9fF$?q0Db5hD0AGkgaefh3&@thH39#Xg?NcG!GldsPJ3_Wt^@icAxKpOUh zZ6=Ty{CsC?%u&^uK=@@7Wn{1G_nXwaY~%aaGo$BDe_um6iZydv*>45)Y6t<}3H3O= zyYfUOUTFRG>#yu}{Z#?lw2d!@=P$1#W&{qSWb~kckGTH&vhdR6>mO|FEPqE;{}H`h zGyhM2Eci$pJ$HJ55I=!6KQAg@0?q&*dZ`{*ntc788xClvjr`V$LF4*Ai^_vRs=w$3 i=!V*j{@cd?P5W=sb#oh2?>fN%0000e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00~%0L_t(&-tC%Qj9pa~$A4?@ zeeT!HZSQoZEiIHXm0Bvy3r|=AREV~z4P8G#Nbf#x&i7vJkT$Zhfp~v#(f;vjsOaZHYAvj_B}Ol0F{FxZfhia z95{VVudMt9T%|H_k3{(#!Y4)K7N7(<5Db`F0oPOV+4-4s+6XrRB~?A^rM0hFfBRyk zGH?$n_scpWk!Wab5nFgjqCAdpuZWc9vr`HN+gl>pUcuH%Xcnmd=_1+)AfT4_qK`i? zQT8L;3kv~jBda!8_l9_15aq&H_ods)Hu6-l;t;d)C*Vi&Sf7Z({piWa4#r2hNTPwJYMX)j(h4ogvl_C@*YN7^A#bJAjxV{p$r-&&z5CPR? z!Dt(7VWL6l+!Pbe5uCj`K(VO>x2+WHmI_I42`M|o&U;l|DJnwOnF(sAhN+&OKtp8e zzFlhr)O&cqYH0R}Ek0ia2vsU^=`pt&m?WSI40(0$&u7+lV@sw(D7ItaOV3MHH~)753&XOy#=u z-{k@I9v-NumEDD%)x>SB;A+LZ!scBOlSSNAldM)k%^F_29pRW5nzizZXI<~%fmV!@(5LVadg z#yNpKK=);LgHjwzFKwFx>Oa9Dxh2H{`s|FOxj>)}!xv)}&<-iCKK^uWEouR2m{XA(Rf}&vf zOCkGDAcAN~SWj;UO;FkEth2x6Wi~_T zW<0b4sLXOgqoS=ytY^fT3~dH90xpcUTh&I5ac4B~pA&;ajkN>naHAE8b&sYQu^H#C zv0cGqE28y`Q1{RbXoxw`oWN1My|eGBfrn8!AY%I>@v-?v(XA?718Bp~a)Y3AnbzKq z4NshI5$lWgRdS=)Q^fU@c4p^iUeq*f1q!Nq7PQsD-N@~kCnm7X$!B!k3c84FX ze-l4z6uoPQ4&d+F3V&z}jejPl{wBQU_GVM5E%*a*IwRJzys&lBS=&I07SokrDhX0B zh!Joy*ETywaZ4#Til%K87nMe*@G_#mkG_6PrBGv156PUwxD=+djhcF5x-^|JV9E|t zEnpTq639U?^m_>QRAHGA(ykVG&Qhv_O{ ziZ=JMo!>BmI6=y8&Qh<%D0aZK*O(H&s)kcz&%SlO_VgXw@QG2QxlybY5d)IgoD1#h zj4C*bDO;rCFr|6>(jGL-c>Guc%_6dl$Xh__b{YTOY$7$J+ifpLx225hEhA3IF4Xgo zD>-*c4pU8#vcn`Yrziz9LKsiUF4PGl4Kyf)ZC#M8642tgkLfNvR=lHUm#rpwn&;CB zaDtQ^wwfR%n{!7OmIF;ae!NNR-;-!_?%Z09Vizi3Gp6_m${z8$@W+f`drFw1$;sJ~ z5IR@8!gw=pC0V<>cXay7;_sru8;c{fS>UlN8AY*zttMAgkQ$UQowc(lF9$0cNZ}t* z<1dNvDAt^EOK@r)TH9B=Zbnh#Z1+E#HM1wIF@GC9axyM9ie2i=p5iUlg56qPGWY37 z3{!D!19>$_z+Y;jX+WDEjVLA#j}D%U^NnJ^1nxuSpe?w4$&T*rvqrJ4f&F-sFp?4* zf$~7_)kiHTaiZ1EP(kx6wU;xB`+&+~qZrdb6pHDBB_R0-fs(PkH_VvlZp)*%{#&BboF=k1N zzD|H7&&2hPu-08=09IcXYIbrj`T)cBfStUn_v{R>jP zy^ql!O$-j5UY68~eoI9k9C`lDM}uU)P#-%{8&}o80_mc$=$spEg;YhqJ^wtB`R8BP z7{AfkA00gL%8FMu`rL^Z=Wa|&3MWu~Sz|mJjgDKjFNw^(acl*c$q4lfZH5b3tNFsE zBX6I*+8t}~uj^pB|i2E(z5!J+rB%iw&ORnXi?9#_$ywdXqT zj6Qc_>bg$ym(f%&{XE)7O>#9ycQ+D@#Dg?FT?1$r9Iy66gHf+|;}h2Ir#G#FEq$ zh4Rdj3J)7w)>#9>+Hw-ifmuiY1Q2Rb*9&cA@kEh-3}5&QWQDt8l^Gq9btQPQZOZW1~^1a~z^eKa< LtDnm{r-UW|K7*0P literal 0 HcmV?d00001