From 73e17a56fc95943fbda54d4f044bf885312ca3af Mon Sep 17 00:00:00 2001 From: Maurice Date: Fri, 28 Nov 2025 16:34:40 +0100 Subject: [PATCH] simplified duplicated code --- assets/npc/bigrock.png | Bin 0 -> 896 bytes assets/npc/merchant_down_1.png | Bin 0 -> 6161 bytes assets/npc/merchant_down_2.png | Bin 0 -> 6143 bytes assets/npc/oldman_down_1.png | Bin 0 -> 6004 bytes assets/npc/oldman_down_2.png | Bin 0 -> 6010 bytes assets/npc/oldman_left_1.png | Bin 0 -> 6071 bytes assets/npc/oldman_left_2.png | Bin 0 -> 6094 bytes assets/npc/oldman_right_1.png | Bin 0 -> 6066 bytes assets/npc/oldman_right_2.png | Bin 0 -> 6088 bytes assets/npc/oldman_up_1.png | Bin 0 -> 5900 bytes assets/npc/oldman_up_2.png | Bin 0 -> 5904 bytes src/de/miaurizius/jgame2d/entity/Entity.java | 26 ++++++++++++--- .../miaurizius/jgame2d/entity/OldManNPC.java | 26 +++++++++++++++ src/de/miaurizius/jgame2d/entity/Player.java | 30 ++++++------------ 14 files changed, 57 insertions(+), 25 deletions(-) create mode 100644 assets/npc/bigrock.png create mode 100644 assets/npc/merchant_down_1.png create mode 100644 assets/npc/merchant_down_2.png create mode 100644 assets/npc/oldman_down_1.png create mode 100644 assets/npc/oldman_down_2.png create mode 100644 assets/npc/oldman_left_1.png create mode 100644 assets/npc/oldman_left_2.png create mode 100644 assets/npc/oldman_right_1.png create mode 100644 assets/npc/oldman_right_2.png create mode 100644 assets/npc/oldman_up_1.png create mode 100644 assets/npc/oldman_up_2.png create mode 100644 src/de/miaurizius/jgame2d/entity/OldManNPC.java diff --git a/assets/npc/bigrock.png b/assets/npc/bigrock.png new file mode 100644 index 0000000000000000000000000000000000000000..42db00d667deff4503d4ebd40fd54fadc62d6973 GIT binary patch literal 896 zcmV-`1AqL9P)EX>4Tx04R}tkv&MmKpe$iQ*EVI9PA+CkfAzRkSgLRRV;#q(pG5I!Q|2}Xws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;qmz@Oi+J2{Gp+u90AAB_pP*djUjP6Bwn;=mR5*>DlV57vKoEyNDOzbQq_`M0 zE`=JyKIsNJgm2KN9IiL;A#?+i2jLQoi)#_8tdX@Vg8C3k*oL~L^RmOTGyDDK4}hC5 zB8UGp59k0Fc3E19MD>GtZVjVNl_GzcOEQ-xX|4P_kJiP z+Y{l*Iu~FRhDafpjK?=C-a5`eI0{2JRi9&B)3hyh)7(rTx(;eztS|u44=Bb?_;gy zSl2wQ*F%-h=i%I5s*2~$hQ=5G9N?2u>WA<91VMld0!CptOk>~LZCMVw8)MK~Qxt{Y zk8+}v+Qa+O1VMl?=Hl$f+8BeimZB)+JS!&-z&tDOzUN7ors>=D7GB$FE9E>ZEx>Od W&d4(7e!5!#00000d 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 literal 0 HcmV?d00001 diff --git a/assets/npc/oldman_down_2.png b/assets/npc/oldman_down_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a3c16ab1f48c13b8f55a05fe954315921112884a GIT binary patch literal 6010 zcmeHLX;>528V)FmSky{EL@6NxA~M<6ksuHdqC{he3a(5h6BvOcWFY~nA}$rzx)o5| zwJz1VfJ%#15GlA&Dk5%WDI)GDQbk1Zo&-d^_1f!mZ~vL+Niyf0_j|u{-fx+CCQUp( z*w)6$hCm?L3PS=V;D3PWYuyX{x-`E=2!tL_lceD~31T3sH7W%jixG8+YK({(aRq^3 zynb|Y#F_`5pS`^Og|_E7+2_T`ii{yAZca!||DmXHU*q1W(;@DMLPl7v!{@a>Y;f@j zJ>qyj^~If6sl{W4@cb`gbIKp!hqG(udgp1PIK_lQw{MQLOHY;7Jk0q$aeL3wDsK4^ z+xoWo(VW*WYNMxx^dc>maDwBtZYTQv)<8UfK)$ncZC#H~s^kxxF^d8BxzzGUebaH< zl9_s{jn;0b1HbPi8U zimOGBWy9m^@je&kTPI2%udNM<@QxDu{TgpI_895Qde2oyn?zfA>COigSrNq3Y3YR7 zhknjqUsSO8MW4wN1!vQ;f8{+&4I4D$N!m=EwteSvJ4%6;=9wk>LT$$5^mR=Glr2$9|QM zaqGOkPQ__MvgXr{_57tUl3-Q3AUo*nRQ7_O3a$+toOhZg{>gv*t^!BLoE2B~aBiEd zaU}TM!O4{{#91mvJ;yQO)icLbD*u=cGxypGN|BL;ll6I>={YE(rQuC z9z(g0)7+6N=S}-x+pcUBY=FsOA=x8`OTH-;jeKSA-OS+jrz&^;nA#i`-Z1D|Ys`L; zV}pJwy>)NGnTCf-C3Il&vQgq8nFfzdrFWA!X{DnM)%eGpjJQSG(;U%YUvIEep4@tB z{9{9TmiE~&Y4-1>Q*)quGfzFdY9)DTb>`WL-y;00n_qeOG%vh#Za$PAm2rOX@AuEO zC)})g{(Q}pY4zI|%36-IT(%4?ND92z)*MlOvckz_ob&O*_~jvqdT-XPy^70?x-z#$ zCBDWZChPu^7xG=RT-xpGZdfOuT6SZ)ReKmdx9{!M*3GVdr7sC3_}phJB2O-ED!a)K z-pyIxT2eIc7=Dn`~?i^?ZQUoNOG@4rnbSW{Q$nd>n0 zW%zzLmwW$St(SGG3sI>YzmzPgd%Y%LnPdNzZB32UHyfRa73V`)qkgfNl)YT);HG83zqHToekUsyH$tSIIE4F-{E{Hi6(X z+Neg*7)(c$VNtk}PkNMhibTZae9{z_h$>PGuxLCaNrQzYjhCWHF(^+?8trT2V}t=g z9Hv8v#<*Ce7B=!pW?mRvo2Drwq8Xx#;giBeVxmB$!H7&UlT3wzjCcZ_6v~>f{t57%;(k0DwZLQn?V74$*m( z?)G3+B?dGd+u%%EEI{mY)mpn;c;rSg$dmqDM!0-YP}}bjFF=h zEEbCc8_@!0+BI|Ca1zcKFPFSSgt~G zIc&b9vUoIxCq2ma8MbWLud1tjBZpyrB;V1QOraI$jLb1p|P15 zhH(%`L8HkaCd!pTT#PA)=rWY8;G*D?#qLHiL4$)zKw`V^%0wjxR5C6m<1%D&NQN>{ zK*gp*GK|NAxEv~vCX;bEESADdWr_prFBbAibTakrj5rq2DO8#`P+quFt}S{Y?t zFa-t%#{tqJrs@F9=6P@$SfIfWok}BBsbcvg({70-N^?;WeLBkp4ppIMLo*nYn<}oe z<^qr?ih1Zm`4IRoOkvR~gYv)Qc?<1g@z>}KDoxA;%>>zO4Ap&@=Y8NVCJE?vTAe0Q z_&108H=IvL!iE4_l_s&9|1d1RW7N@-VsW!nM54J3zzEtQzZOZr zfqvUrY;WfA_arid&fuYl0)uD@kb+DmfW@sB{`cmk+XjCbU4l`*mmHy^3SaMECN%X_y<3o#q|$*0MwtHe3ZVQ z zp;eGK4_x(8heT)zguZsBuLWU4mLr(#trLoZdf)0}(_@6CUwfSsn0h1(^p|qaZ(3U# zx4>_}qEr5R^Of^qQc!XMlrfEbDP=vW+}|euYi0^X7tl9%QTl?2o_Q$;zS@0pEaOpW znNy0JMMh?m-+uIN;k3}ru7)yt+sWPc;ax#X_x>rE!y3HRdt88Z=BRN~YlFP|x}Ck? zc)eGOK;JMoPtnvQr94?GO3U2Hk1DFH*s+#5Q_x5jY77=m*T;+y+=v$KSu%2IZt??d zL6elB42hUubAEWs4ZT-=_XeO_{>fo#15ypA$Td%#eG>Ih)8Xx#WKxFE_01{2= AtpET3 literal 0 HcmV?d00001 diff --git a/assets/npc/oldman_left_1.png b/assets/npc/oldman_left_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c5a0aad947fb62511462e26a669c77106b9b4e14 GIT binary patch literal 6071 zcmeHLc~}!?8V?=?5i6^5hzBu(fI8$3NlduH6(xXx3f?o5Nr;3b%!DN1O@-oxpj8o3 zibt!6S3Rm?6)FNQ;DHJVB8V4N1Oe*>m7N4s*t&LocKe@so+LBh_j`Zu{mwk!>YxDM zA*ME_1Oj1*(9bIv|2NlvO}@f^ZQHv*0%3q*Z{kuN%xNUoE=r#>ahRdJk9CMr_D~kx)0j?o#Vite(QQW@}Vuy zf9Lx4=>pUIhUiQ7m(%vm%RKvBTwAUrYcezLKMY%#G+=kmVH?&T^8#LoSJNbK3sWkh zvNEhT)-*lYkyV!J@3l@?W45;}<=Gkc?JLhJN)q?9Y6kB;4A*FPJ-JdE&;WH%(5`0E zu1emjUvDQA?2_KKSW#*_@=}`Jb8O@aZ_7bh+MmXIxF2c|D}%Nzo|!z7pIVnn0ymE` zxtwoSq;qmuK4!_WRj&$<-MG*$ynLsy<7v}*YI-{L&6(V$ex5cbMNj91OM)hwoSvLH z@OV;Y5ziUO+VAmV=8^0269W$hlYDL)a~6Fk3tCV()xvy?HraaHq@;A(=Hk@{!ul_} zEoZRff0rKZb&{y?)g_N8lvNaoBOe)0O2IrI(UakIZ~q#i1Yhic4-UeBHy zB@QsFa&K@-SznrJ5*_+%6X+K{+A7HX4%UCFhGcZ#F|h8{gz{Y_J7-awC!623_Zz@u z&#(XIT}bfO>&N1(ri)WrmOi_7Akfu#kn<~ZPqX&6lIgqFx+YrhE*x=e4fl5&Mz)P8 zeYivZgT@d)s%)y0lwEctqctYc^K!!45wn&IvbO~G-(T~5|DiWFi*gn%%03;vDRJ?x z1k3FwZ=gRWhdw^kF*dHLI^;_K{VegRyS~=Zjeg^8b5g@)OCt^+^O+KPmcq2Smv7^` zKH9~jo!h#JPAN>z(`A?uvtm)n<_ws=e|yHQ0=C7@mF0n`ji@m1`zHm=|7! zzTj->!RLEwZj9Y^deLQCK}*1aO4l@rVv}|tH>~$;NO)t-K2rS8tjT)bO@ljYAcBBPlN;g#QJbZ0O zOc}p4@Y*&E9W#G^z&C#kZue{c`S$rGUame;#a)jW&JU-vpI2>(by7UrnmA`DI?_nH zvTIFF+EL(Y%Ffy%sitJNaqEIZmu$uo(~Z|QfpfzO4ErKxd*auY z|A;OQns=NyvB7c1Gqn^j_4HJbi}@vV6g zX_%kqs&x}tL5T^D2W^}t1Ru9;e>Rl+*6y?zjarckkG0sBGTQBxZD(`EWdDFu!Yu2n zub~>-3+@Z8B5ue#I;u{Na#+zd@>Kckw^PTYy|(+MqMYRG-ojEv*OuSs*Q3VPx^jB~ zYUd`(3L@OO(zqRUuLI2I#w?C(zW3ayIB3>1m%RLOl;Ay0%ne%YiI*>0wn>(|&5uMg zE2?Ky;?sMv44>FxB7ZKdjB*CWN(gb*MXB(KP9X5ybSe;zMASqGk;)W&QcLc65>Y1R zlV&kR6p>1RM9BQ&P$VQSAQX;^ggIi8o2w~L$HfVv5H(2DMadNySH~wAc)9qsewj=n z8X)ROJ}FETL=-4dgvfAaI8y*`olHX`xtbDrs93@c_VVeW!0-5^2(?7!1)b8SIveC1l(v zgXZ2czCuyZdl`KgrLriMK|+u2jTFQ0ajFShnc4@hmPtM&sEMG=U~@J;~by{*zyiE%23jX-QVBnBXuj#I%b8UP_24#0MyaHtUE;=*J~ z3{?6&a6N*Ad=kx>@?j-N4yq+eGzxDonL@18Vjs3bWl>0o8q|l4%A!+g3>K5ZbYalh zJ^mROXCf$um${ymN^z#q4B}##>w|NGc)7`5Vo|~wrG&B{F*V8Use;o{sXR;d`}Dhm3VJhx3oa1ip7UiggQ{G_@w%e0J|CdWiX<^l%F!aH>5i(y`HnU z&E0GG^BaF1AisYf=xGA|ocJ3*J&C?mYD47ObzKS4gOB<-@O z%Cj*dW8jfAe}RirRonjHS5S!obtKAYmE%KElEIYq`!Dvo;p-+bzCOF(78xycZ;o-~fVlTi#YGR(RpW#!D7GfbEnXNH-P;#DG*q;{n( zWvkt&q#Knkaw#pcNxDa|(v8&HMJn%^q2k@%_U(D!{jYhRnK|e8`+Ps&`}dsZw@Tpc zZfrQg5QD)O^E_OA(SK9z_nYD9ug$Yw5Q7e1hxPDtrCFxe2+ z65o*FQm76_R#DiCU)srNLB*HPrEq2jB8P@s;GAdl{JIi)H_dLzu2tl?cP{H2q3yvY zQ&jC&tlUz*%}%x08jJT#!QEM!I7(lms$RLXt3J8@Wzp80_II0ucsG^Asl`nWxVTy_ zzUF%m`^DzB^{V2}d(5%R%_+y&ALOa`)NR6I*WDEn1=$Pd&0CjKCG%KcSZzG)%9)XS zmg4PtnXkk~UCD4>_0u1=EMHsPv8B_3Uu&`Sr9(+##>(=%aa*sQsYuGGF0#LxN5%$> zeQZC%&G=w((pK>v0{(|Fz+I=R?{;`Cf897QKe7F&!nHcsxnX0Tt9NkageR@y+%uye z(Y_hT#-NEBR{b0uprX*X%p|kd; zE-f{aPwT(3FRp71DBa#vwpUKNac~blC;jGT%@nJPNvkG3K1IM6arIn=-Ix^WQJQEx zC1=RBD(h9I?)tMV(>7K{>*=?07~4g5V`is6J-n8-zUbH^&G?p@A)`Z*Tm{P?>lav$ zqPO}e)2x3BIq~eafz8R+t%{81B$IC|NG7MPryg&IQh~)@z@FWH`<-{>U);%x9%G&E zlstCBFB_4S7f04w?xEPW1|Ri^uFMh$FJ^iccx-!+zd!eE{x835wqi(_b_>D}Nahk$ z4?K2t9Pi9MSHOAhn6a3<(rVd?(JATFr^2;0-VeXmY@@M*TGr;V0Efmx>RCVi+Lj8R z3#Aq_hqOeK6IZmI&kjJ+Yj;W!u^AMo9_~5oyo72wba{bUkMrsho3;Wq<-*%EhEq0W z!|~H+wq!SOz>b_^gS|&IH~eRap>S!rrT>hp%QpQ^JJhDhJ1KP!@~h3fZym{h*L00fomyDCz;=BBn~A2WZp{Ga8w^Tk^&C+zYyMm3TbWe>*LC(`y$emmyoxv&=| z*d+#$LDYm3p-m@xYxm2}HsQ+>7La>~PIt1(J{47Y4TI5JA>ncbJTCYB$Uq0hmZj@C z9_6#GD;N3gS}=W-`RM2>!S{!;)9>N~?30q~=Y?NB(^_wm%j0I=y^B9;ZvAHdUiMMu z!w1dNze%#eN~PXu4!(DLGhJ3&n56e~b=+?0n22qt_M*)^s~2!+jlZLnuJGcl52-3u#NR4Ecclbh_tfd-z4q^(+76A!b=hAsUaj7$j=NOP>NHCU;`yf5 ztvWaIIJRr@6*#MjIewzKT70!?XIpA{h48@IKj`AA+^IRZbbS7tZkI+l`I&jxkzlxX z$3 zsZ>W^zUa&rC(H_oK(;kr54eJk^Cc2=gwN-Du_0NM11ORSVFz`T93Al(jN>e|9E2iZ zB~}QBNu(THXUS=)&&lcA%UjS@t`N)W4# zij*qYY7S1v%SNxY%S0Sj2T?|FaP#>BELVoWSgHfnfkbdqOJd15Cqt|wA`-KGUFY;u zpm!WxxKb%+6NxI7%0WeOkRf42fW=}FNn|3KOh6F?g+{6b)dZieXG!XJH-5`AHXECzvKw^&%JoIFse zJTgWxP-lz+)-LJnjueTBs8Kr217+NKe8C49Z5YEOQF5Jx7CjItfGkqnZE z*t$y+jRime01{{v3X?z;p;tnX2@;rM1|+02$aEH!GJuLFRVYCz1Z$~Kat8^@BN9`{ zpa@_R7-W%%Kn2KD0t;Y51R(&>sX{VM$Yczp@IfSKCxDRytg4DpxAA~`s%wOB2suBot&{q4f`l0iB_9T*mA zJFdUyT);4*?$(j`Iq;vD{K91_>3_%b5&D6}8BwZaNQ4jKBU}ta%FpwB3jBe|7oBzr zC8FW|g;W2AbL=Zv4^&o$Xa?x_gQNTI`bJWuL>DS7RyPLNAk-Ir1sDs9bSXgN*tZ3R zgVHb4`x@$#7Y&2 zz|LW44WM~On@g8xEWW?~rVYlc!eMQ3k;njn#3GO={s5CrrLbuvTwk{Pv;X(F2QcX@ z8jB<%h-s*2R0!=WAxxnXAk;@Ol>w5)6mYP)|C@UN$seGwNn|z&c<-JgQTqUSpG-&X zh~@Ly1JmuO9l>m#w$J=xg8 z>OTSOWAKtduv8)YoaqB0ePJ2!oJDQ!TSK4U=<5LS!}~yg6KLne-}vcouD?+OO8r&I z7sdB$xW0z#iz4tv;IGy7HC$g5fiD7ot*-xDxC}p@D8N$mwN{0m7qDKGEk@58h70Gq zyXsCIFx}je1oUcz+#^VV!5Eoozj~O>TP)B;10|2|X7I-d!(l`8@~h^1p$AH%d9Kd> z%<8op0PhNtsoS>lq}}D?kTt2c{Px}WGQCF|1ks5*uSs7T{$#sgL{znLd@|qYXUnwa zW+uHlYwuO4w>NB~W#t4M4ujuSRuT|umU*P{)R?mtdyim7mSb~MJ=g19FRHW{+PvCc zZS;@r>Hd~RA#Lt;DHCyJ-GxI#AH7u6>@&UQ$?n)x;aPgD$D-%$>0$mMjMf;lrOX#g zvbLs;c$2M4h;Qk*qlpVl`+1}N`R@C;=taec8!x>J#NM}G5D_w|Q%@at%Xe&L{I!^g z8#AMQi%Z>Or#;7edkW&`^d@mb7?Dkn%WlQA)Q-DS)u7%Jv^#&X(<@Q0HUU)8mV*>*Tg$HffsJez84Ml9G{ literal 0 HcmV?d00001 diff --git a/assets/npc/oldman_right_1.png b/assets/npc/oldman_right_1.png new file mode 100644 index 0000000000000000000000000000000000000000..87873c76c58b42be085fd1a61c178bb42ffab69b GIT binary patch literal 6066 zcmeHLc~}!?8V{a`P*IAapotL_ktCCw1R_F!5FvnoT(ssK*X(U*XL>fGtZOcJAUu)eZTjbdA^*m z5Rr}5I4c5yU?UFn3&;O$O<&6)_%E@e8zc}0jZ2G+(T0P1k_J`F6iEn4o2o%bh(RGE z5DYgCM#Zju;AZ`*@pEjD^Zx9H_;0iIOZBhB&#GrX+(YeTOty}(oI1;@NYUM0dy(iB zoS)kTf7nvsIJ{ycH2{rV%C7)lBjE;Hk)5lr=-hs7-_F7SAVOF zKS~T#6&H>$azqSUI$y_J#}S@rA}EKn|K#qtw(_QnyHeTo%c!~YnQl2(pMwwDZup=MIh#S9 z<<_FE$dK2m&n{ZG<;tfnYxLx$I}+CyA1{q&mmb#Xt`E*+B`v?Po{=6l#}?gqb->J% zO;=VGJAckTQ$HYO4<*HC>bmTaogpjTkf$}WzZDR+HB^qIU>384KaAofk4!Afb+HyfrY1uaw z<;GVzA!~%!m+R}h?rx9XvhcG}bDmAibf~PMgcRn3{Ew=tDRAMn4;N)V|%1 z0&I5I%;}(%)RpY~)-!xxkp6b(Ww2w^{bg41qvYLlRTrbDyjr=n#re{7 z>g9vuXXObxCN2;Y55{GuAI`i~x`9}JBv}yxQUXsCSzP$8MTAR*`Y?CR<~Oe%8&h&_qo=n1Ox>p4t%wG~S+`n{YHm>amHUTfr6Vg(71fW9ZM&n=e-X!5 z=4w_b-B<2l-P@44qd9omQ@-!>odp|P?;xG`m{TTLBMcu8hcBdvJgxPlNn)JPy$WGaNhFtJehrc20ElPnk<^p%F!g>u6`i6iw<=#RJ#aK zXK%^YFhc#M$D7d^cPO@Vbm@sL4Zm8P35yQmmX%Kg!gn;YSLyW!JD<01lr8q2mxyk; zc4Kxe-oeuqc-M}R1oL6Fk_t-I5JEL5HF#Gi5WKt%8W2uIv?K_TD^vn<>#^fxl0qsV zN3$h>L?c8J6oF|d5|I`X38y8(JSo|Gx|NrKj}s^nEl4sblT;YrARwE0`S{qhOe2%b z5N)D>93u%M3Dqb&|RK^eY3+Sc5X99A9R;%IDXnMV#s%KKw zsGLUU@pv?VL1Qo|ID&$usj5DZ2Y8m&UDBAGZrNUhTf$Ygw<)Ju-< z!u|$)u~&g-8e;PnrSL(CAcv zrc}Nofoc6y-s*d=1Qv-uJZa$wrq-b_;-7-3w3GTP)gdlgV!o#Zv*tsc}zRM zGXz)H$NvucjlaycnElH4Q^PuwQn8Gl_G%C4S#1t4lejMDjps6}=X7f6J8om%k zK&={$RI8H&WRtZd6Q#MRNM60=!Vgx%WCUpTLxgbl=H)o5xz{SioV z&#b2bH76?*!5DZbIbUG7ZKrDdG=t<;0c1$hP>OmCok>fdl#~Cj!bDT-8z4?x%`>3DP?lFsA<0H4l#b38Aa=>hU4m|mt9E0OT~huh24g85=ooki$0nj{5+ zzMBSb%Hn_E`pNf};2(+ihxJGc)tXeiNhN4Q^{Nl5e-E&SAy@$;Dop($)B8hu+|utk zi`(3@hCjdY*8y7J`#^6I;1T*OKfT5ESE?Y9J}LPq|9*1UCwG062R;h?DZ4(o>!UpI zQQ%M6^{2VZ>g|mJqQYNm_4s{(dsNOY{H|dL6eRL9-#QRp3Xd(uN5eFMu^53c+|Km1 zAZ*HWz!!&V#S;Ia4~JO|BG@I0f=m}m1H^tlksjy2`Px%e0oeN8aU+tl92>2?jGpW& z`{pVeU4~P@f@+>WHC}IFefVhkyz<>P7H5CRc5M;{R1pSw-)(MbUhV4?FmCOwL1=y> z!K0DjdVW;KHrIkZdrqJK(PgNiHQoMPeAX}F-2qjqi5IWbFUbm4|GUbTrrmmmqpUz9GhrQpRE{} zhyA?J6(@Eya9(~EdC(=(`-;zRwd#`Y*rDFv`)PLtF;Cf>{3rGg@%zy?e#w6Tzt-v$ literal 0 HcmV?d00001 diff --git a/assets/npc/oldman_right_2.png b/assets/npc/oldman_right_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7f9aa78724ef025e807dd2fdc56c9816a6276692 GIT binary patch literal 6088 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 literal 0 HcmV?d00001 diff --git a/assets/npc/oldman_up_1.png b/assets/npc/oldman_up_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6fd8c0559d35c49e1611d9a2bbeb0416700847a4 GIT binary patch literal 5900 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 literal 0 HcmV?d00001 diff --git a/src/de/miaurizius/jgame2d/entity/Entity.java b/src/de/miaurizius/jgame2d/entity/Entity.java index cbb1c8d..d00863f 100644 --- a/src/de/miaurizius/jgame2d/entity/Entity.java +++ b/src/de/miaurizius/jgame2d/entity/Entity.java @@ -1,23 +1,41 @@ package de.miaurizius.jgame2d.entity; +import de.miaurizius.jgame2d.core.Boot; import de.miaurizius.jgame2d.core.Direction; +import de.miaurizius.jgame2d.core.GamePanel; +import de.miaurizius.jgame2d.core.Utility; +import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.logging.Level; public class Entity { + GamePanel panel; public int worldX, worldY; public int speed; - public BufferedImage up1, up2, down1, down2, left1, left2, right1, right2; public Direction direction; - public int spriteCounter = 0; public int spriteNum = 1; - - public Rectangle solidArea; + public Rectangle solidArea = new Rectangle(0, 0, 48, 48); public int solidAreaDefaultX, solidAreaDefaultY; public boolean collisionOn = false; + public Entity(GamePanel panel) { + this.panel = panel; + } + + public BufferedImage initEntitySprites(String name) { + try { + return Utility.scaleImage(ImageIO.read(new FileInputStream("assets/" + name + ".png")), panel.tileSize, panel.tileSize); + } catch (IOException e) { + Boot.logger.log(Level.SEVERE, "Could not load entity-image", e); + } + return null; + } + } diff --git a/src/de/miaurizius/jgame2d/entity/OldManNPC.java b/src/de/miaurizius/jgame2d/entity/OldManNPC.java new file mode 100644 index 0000000..9fe7483 --- /dev/null +++ b/src/de/miaurizius/jgame2d/entity/OldManNPC.java @@ -0,0 +1,26 @@ +package de.miaurizius.jgame2d.entity; + +import de.miaurizius.jgame2d.core.Direction; +import de.miaurizius.jgame2d.core.GamePanel; + +public class OldManNPC extends Entity { + + public OldManNPC(GamePanel panel) { + super(panel); + + direction = Direction.DOWN; + speed = 1; + } + + public void getPlayerImage() { + up1 = initEntitySprites("boy_up_1"); + up2 = initEntitySprites("boy_up_2"); + down1 = initEntitySprites("boy_down_1"); + down2 = initEntitySprites("boy_down_2"); + left1 = initEntitySprites("boy_left_1"); + left2 = initEntitySprites("boy_left_2"); + right1 = initEntitySprites("boy_right_1"); + right2 = initEntitySprites("boy_right_2"); + } + +} diff --git a/src/de/miaurizius/jgame2d/entity/Player.java b/src/de/miaurizius/jgame2d/entity/Player.java index c662bd3..e940c86 100644 --- a/src/de/miaurizius/jgame2d/entity/Player.java +++ b/src/de/miaurizius/jgame2d/entity/Player.java @@ -2,22 +2,19 @@ package de.miaurizius.jgame2d.entity; import de.miaurizius.jgame2d.core.*; -import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.*; -import java.util.logging.Level; public class Player extends Entity { - GamePanel panel; KeyHandler keyH; public final int screenX; public final int screenY; public Player(GamePanel panel, KeyHandler keyH) { - this.panel = panel; + super(panel); this.keyH = keyH; screenX = panel.screenWidth/2 - panel.tileSize/2; @@ -43,23 +40,14 @@ public class Player extends Entity { } public void getPlayerImage() { - up1 = initPlayerImage("boy_up_1"); - up2 = initPlayerImage("boy_up_2"); - down1 = initPlayerImage("boy_down_1"); - down2 = initPlayerImage("boy_down_2"); - left1 = initPlayerImage("boy_left_1"); - left2 = initPlayerImage(("boy_left_2")); - right1 = initPlayerImage(("boy_right_1")); - right2 = initPlayerImage(("boy_right_2")); - } - - public BufferedImage initPlayerImage(String name) { - try { - return Utility.scaleImage(ImageIO.read(new FileInputStream("assets/player/" + name + ".png")), panel.tileSize, panel.tileSize); - } catch (IOException e) { - Boot.logger.log(Level.SEVERE, "Could not load player-image", e); - } - return null; + up1 = initEntitySprites("player/boy_up_1"); + up2 = initEntitySprites("player/boy_up_2"); + down1 = initEntitySprites("player/boy_down_1"); + down2 = initEntitySprites("player/boy_down_2"); + left1 = initEntitySprites("player/boy_left_1"); + left2 = initEntitySprites("player/boy_left_2"); + right1 = initEntitySprites("player/boy_right_1"); + right2 = initEntitySprites("player/boy_right_2"); } public void update() {