From 67914a35772b35739a0bb371ed5cf757098b7d91 Mon Sep 17 00:00:00 2001 From: Pacharaphon Date: Fri, 19 May 2023 21:11:22 +0700 Subject: [PATCH] gameMenu --- bin/MainMenu/GameMenu.class | Bin 5376 -> 5465 bytes bin/MoleDerKaiser/moleDerKaiser.png | Bin 0 -> 2118 bytes .../normalMole.png} | Bin 2108 -> 2056 bytes bin/Tiles/GrayTile.png | Bin 206 -> 0 bytes bin/Tiles/WhiteTile.png | Bin 205 -> 0 bytes bin/Tiles/blackStarTile.png | Bin 159 -> 0 bytes bin/Tiles/blackTile.png | Bin 142 -> 0 bytes bin/application/GameStart$1.class | Bin 1210 -> 0 bytes bin/application/GameStart.class | Bin 2135 -> 0 bytes bin/application/Main$1.class | Bin 1190 -> 1049 bytes bin/application/Main.class | Bin 1756 -> 4328 bytes bin/logic/entity/Chicknight.class | Bin 3591 -> 3555 bytes bin/logic/entity/Enemy.class | Bin 4235 -> 4123 bytes bin/logic/entity/EyeOfQwifot.class | Bin 2436 -> 2400 bytes bin/logic/entity/GriszlyEye.class | Bin 3131 -> 3033 bytes bin/logic/entity/Mole.class | Bin 0 -> 2315 bytes bin/logic/entity/MoleDerKaiser.class | Bin 0 -> 1280 bytes bin/logic/entity/Player.class | Bin 6874 -> 6873 bytes bin/logic/entity/ShadowPot.class | Bin 2966 -> 2971 bytes bin/logic/game/GameLogic.class | Bin 8530 -> 8794 bytes bin/sharedObject/RenderableHolder.class | Bin 8236 -> 8776 bytes res/MoleDerKaiser/moleDerKaiser.png | Bin 0 -> 2118 bytes .../normalMole.png} | Bin 2108 -> 2056 bytes res/Tiles/GrayTile.png | Bin 206 -> 0 bytes res/Tiles/WhiteTile.png | Bin 205 -> 0 bytes res/Tiles/blackStarTile.png | Bin 159 -> 0 bytes res/Tiles/blackTile.png | Bin 142 -> 0 bytes src/MainMenu/GameMenu.java | 189 +++++++++--------- src/application/GameStart.java | 71 ------- src/application/Main.java | 157 ++++++++++----- src/logic/entity/Chicknight.java | 2 - src/logic/entity/Enemy.java | 4 +- src/logic/entity/EyeOfQwifot.java | 2 - src/logic/entity/GriszlyEye.java | 3 - src/logic/entity/Mole.java | 62 ++++++ src/logic/entity/MoleDerKaiser.java | 43 ++++ src/logic/entity/Player.java | 2 +- src/logic/entity/ShadowPot.java | 36 ++-- src/logic/game/GameLogic.java | 19 +- src/sharedObject/RenderableHolder.java | 65 +++--- 40 files changed, 389 insertions(+), 266 deletions(-) create mode 100644 bin/MoleDerKaiser/moleDerKaiser.png rename bin/{Tiles/pathTile.png => MoleDerKaiser/normalMole.png} (64%) delete mode 100644 bin/Tiles/GrayTile.png delete mode 100644 bin/Tiles/WhiteTile.png delete mode 100644 bin/Tiles/blackStarTile.png delete mode 100644 bin/Tiles/blackTile.png delete mode 100644 bin/application/GameStart$1.class delete mode 100644 bin/application/GameStart.class create mode 100644 bin/logic/entity/Mole.class create mode 100644 bin/logic/entity/MoleDerKaiser.class create mode 100644 res/MoleDerKaiser/moleDerKaiser.png rename res/{Tiles/pathTile.png => MoleDerKaiser/normalMole.png} (64%) delete mode 100644 res/Tiles/GrayTile.png delete mode 100644 res/Tiles/WhiteTile.png delete mode 100644 res/Tiles/blackStarTile.png delete mode 100644 res/Tiles/blackTile.png delete mode 100644 src/application/GameStart.java create mode 100644 src/logic/entity/Mole.java create mode 100644 src/logic/entity/MoleDerKaiser.java diff --git a/bin/MainMenu/GameMenu.class b/bin/MainMenu/GameMenu.class index c13ca3e4892604fae56582cb5867c03481a8d559..66d89530ec4396c6985fd1445d58e859250aff47 100644 GIT binary patch delta 2353 zcmah~X?PP=6g@99nQ11EB;CMZOL3tRys3>3oDP+R}wjDHn%rXQ=1t7$TM`eew%1g2Rp?278ZT!+K8A z2Dhw|ztsi`Fot6+JPbz243Db~R8)o=9Jm-0bc`2Al}x1=C8D#Mom7BH9Fs9cj8J=N zWgM5_QgMx%pLrQW@~l98;PQESp$ao-=8dhHVLCA#Hf-^b)m7Mv@F$ z!Exu7ow}QKSj%xG<}omnAxk7Xv&6BabGkf=$8|i$;E}22RRw}G^NJfnVY8a!32YFf z9pR+uc#5MDo5e0iPlch9@JEQC%_Xv&shWWhXZw)Yf&v8Eho8F039x=*k?S@kC)Y1h-1(7$(liWB!$nOf z9AJ2jG>nX5wAa{-aZyb4M^UP6!_-p6s}`54Uah#)?zI=UV44k+a}$fYTuhRSj`*T4 z3ez6jY0#oS?rx-6x8ZVn25~w)U1GO;U}PoD?^+DS1{9(RMR*D0aR3wWA&T(@N*KdL z)&-MUUzB1d?W&FCfh$l+|1{Pcv&fx^o$6hi%#&Z>cmOL35P*3eYW zp%dnirQv2OR$YWlod~Qzh^!={5J8wM2azbpT+~B008JM?bvp1xg3#zadMg@8y{nsX zZB7#w3{bslP85qW7gt1aOJdD0*GM+GMhjjwirc+*`A~g1tyo53fyV64EmTilndu+1#Wh_Nap}lr`XZUjb$;anM@gQ}AsanN8 zwazX&onlGME>!U>3%es#Ncv*+lh(Qj9)jvI9Hb$)9mDiChUpf*LijYu zar_3raQ<=M--tC}C zkRsdgTzD7n!A5v=bH?!o5T5Kr&8I~1K_i_{e-neyza5a)2BcX)^hv=dR{SA+O796Y zwBL~LJN$qjE$aw=p{qywe#4*m%d-B)F&ww76O1vNw3xy)rdw845_2+cnH`viC9@O) OrmKggvUJu7-v0oEecadp delta 2272 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 delta 747 zcmV10O$g1 z>+GD*^mqWUGZ^YU`=?MI0D?kuv_0ZEHzit4uXw(4JdOtnWk=`xM5C9GpF~e)o z*fM&ym!*9Q0Ed`mE=!+v5QG!}+`t0@nPDA0dUW+#eXM``ralQuab#Ma*T$@4q+``a z=2Le-#6WM&3;^;%lztGJ5ncl?4M3ZnaeR9K;d{Wy_LRRh@6{X8_iD;|_BQ-45HZAS zxS2Fi<$D(Zhd5)HH7bH=-UHb9necKg>1At5{mAzwfQaD8no1D103b+JAeaDF7+le# zw<95dmBxQo_Chcq095#2=MDgNToKfB)nDcTz<<5cR<1GtR_+41yUGBtuF&lHHvs4= z%r+qPQGa>0WNq}j)_VgG6`j3Kn~wHFI+p-IfsuI+2y6Wt0ISH;Xl5<>%l7yNV5a#I z?a^?fb=Ibem23DIjqsINOB7>?WXz42?e!twUL6R48m)xjHQfW@ zId1}30byrwhSUVWMVY&yLTJuK;}8H|-~mxBC}+^43xHg#VO%A!%s}760JP9mk4rrW d?SOcD06%Ag7(E>Z)zJU|002ovPDHLkV1n%2S>ONw diff --git a/bin/Tiles/GrayTile.png b/bin/Tiles/GrayTile.png deleted file mode 100644 index bbb1dc646be4887d2bb66df03e590a61c4f6b512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!V6vx+V@QVc+w&WF4;b(qFfjjL|Md8-C+tcM pJ2I|q-~D-0@$WTkTPT2QX3DpUFrDmuZUnN9!PC{xWt~$(69Cr?Ln{CP diff --git a/bin/Tiles/WhiteTile.png b/bin/Tiles/WhiteTile.png deleted file mode 100644 index c7a0bfd38322a9eeaf1efb575506acd8bf3867d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!V3MbcV@QVc+w&WF4;b(qFfjlB|Bc?yMh*qN pSzq72+w_w}XYwvyzehajX!PC{xWt~$(696vQLKXl3 diff --git a/bin/Tiles/blackStarTile.png b/bin/Tiles/blackStarTile.png deleted file mode 100644 index edd2c86f60f9433a8d3a37d015f47a06e5666666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!poyo8V@QVc+Z!8s84P%s9KXfSGKo}})O}*t w>N-{q28Q*w?g7o0NXY@JWjJ70XV36&qRgpcjvr-A>$N~)p00i_>zopr0GtOZ+W-In diff --git a/bin/Tiles/blackTile.png b/bin/Tiles/blackTile.png deleted file mode 100644 index a51bd331cb40bbdbc3ad52a584565ba56a2fc9df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!pt7fnV@QVc+k=d}K;EGR-~Ds>*;#;07?`t~ X(ZGR$ktZSlD@e%G)z4*}Q$iB}IL{x3 diff --git a/bin/application/GameStart$1.class b/bin/application/GameStart$1.class deleted file mode 100644 index e17c1db8f34b704e42a3da0b2da93ebda71230e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1210 zcmaJ=%We}%6g?Hc64N;E01@B-fw7y1C%hkl5KJIO4oE;E&Fm`e8mE|cwbfk?u$uk+ z01LMK01^&}1s}jKAt6q63>yNLy6V=gbMLwL*74`BA3p(DLZg5ofdjJJ4Rs)`j!f;o z?5HPJ#&&+8fUH3IncSBDyr@Z|JG+SG@77b@QL%v6jn%e}dWky=hzE4FV)?vbtctf~ zNY`C~TuX&k3Y6%XZ#$A8R>}xWH62)+_AYhmy&*8-aADNefxt{NHEJ#_MKztDp!}jX z+TId4TiGki-eJ`Zfowf$sSyZFcqn3@v!*{!X%m01O zt@GzxM?4fT?5whf5ey5AHnmX?d!0=cKb4yy2Qkr%0vT?|SiAGUnYCLwVanz&X6~BW zlBVSnWGfG<8%6wqY5^7I`*}_td{=0xE48upsMC#%GPZ~_I9I?~_O#dBJk(s!zVvRr z+mcolv49H&oM&UnmW);F(dIK1*xF-dS}JzsuSOv)4;OKXp>1UwCb7~4Eb~~U+Wc+Q z4VV6khpUb@-y1Mq$6^6&cS4(P&(<1lUAH>a_N9lL4m!3AO>ZbkORkKGo(t^fDfo9y zb_YW(K8bp9pzdimwbBm-pL5dX%dD6nj1nqrP1&ueRRHBUz32Qr+;hY^wia8;xM7Tn z>!C~%#YY={s1myxB^Gmh_zeF+x%A6(h0{a2Qw_k_gp*aeQ&jX1@hf4JabvXpX0(f+ z^H29N?w{#n(tnR>f25Ct{uE~WIP91DIQlk?oZ~u^axE~&c}(I0X896jj`bMtJZ5Ds z9LEXn0`oY@)$zPxRgP!H|LYx&mi>1)sQ%}AI0~5EFFQJ3jJ|q}c^cz8IK^#p2d6*a z&mCO;fNN>wXnRmhhBUw_N*=g^X+G&Ju9J3=LcGaxZqd6$&u!erowT@_wDpxiaV&+H kJj+{Rh8)Bf0<(m>2`w`OJk<%hPpe3n>&*RD`3<4|4H&x)i2wiq diff --git a/bin/application/GameStart.class b/bin/application/GameStart.class deleted file mode 100644 index 888e7bd27dce3b84657b886ef3510f69b56409ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2135 zcmah~-E$LF6#w0JlTFf~3hQ z!tmq_?>_kKj4!^)Lo!ljMjw6hFLFG0)AU2bm`wKGyXW)%e&?M0`S;6L0B+!^iY|tu zd}G5h4epzcoxa7_Mak!`uR>wyd%z#_w8iaedSUf}Fnosaq-mS}b%yRla+yJyaVjE) zZbUVN5N7Djo3<#{*H?wR#8)lBFpzf)ZY^`yl;_=-ieEE5hU58;!Ltk@ua!j~LtJLD zww3k_VT-ik*uLvn=|$J6y2A6Oxf??-q7l5wa3!_2mEr~|`kDAGR|q>BkHzK7Rc<`2 zx=!7$qzuP$+)R9>X8MA}()y@|V>r$b@q}OUw`JN#6Z!qymweZ>tJ&mocd4eqmuYmzM-|w8%=o zDGe8qX3!+#ZC?y0TEIv`f;`$1LPx~}!%*8}K$pe0ow}c1o_4lkxP+*RcMe=6P$|i0 z3|H`;tf8yqVLw8ku*h8^l>E!Au4%}C3M8OPis=&n(hnSxdITR39ZSOVrQr-%75Ob!Sb4T_@{zVBr@jY+b!kw|W=Ls6o zJw@WaAml*zFbo>}L2q=?js`wGRXV3>WweIInuz>Nn=TrV2*ki3dT6h;6li^ePEko? z%b5K@JE{Fge+b$BuD>RC&|7Yzzc4;9(7@pMAch(^G2Yw2>0L=NH84z)R7;X-NzReY zXhzYM7dYR*_zo`7i_4kN4z85-P!sQF!n&e|8+cz=1|}Q0zJpwuJPcx{iJKX92e-?* z+Qf&Mh#qR75dIAxm%DYfR941IdZdXjGEqI+0N0fU#Qx1! zF+?{Sf&v{8oJ1e}Qyjx7`kuyFoS}gnr)fBht8|*g2yS8&1)Rq+jdG3zYDmJt1w6$# zo+E`HX%zp22{bW_UrGCS%mt{f5poJ%k-kasB6x`hw4;A+yud?P#KRcA$2#r0$?6Gg z@~Ti23mbSu1akVi@Q8t@+!q@nQ))+;&N2~li Jp`Rkp{{Y*_6N&%; diff --git a/bin/application/Main$1.class b/bin/application/Main$1.class index 5b144d2e06075a7b373d8310b34c8e2f7b679d8c..15b006af88d25ec82a1171fb0f441ade2082de49 100644 GIT binary patch delta 639 zcmXYvO-~b16o#KWrJc@nY(Z!hwJlOmI-(T?KMPojKx0fy6cgP|N~05T+L)<{EB5Zl zER34Cbmc}vk+|>&@Rv-C=Z?L}oUeQCIq&;szFHsC_VM3ezkyYn`*yHe_X9s%Q6%Q7 zPZcB0?oP)hLDs=0W1$#zNRmo5y2r_FIl46AV3O8RA*!qA6^jy6CS_^%dc9r0?S+0f zs6F)jz~Ma8isb&MQrc#Q3nsJC7d5$lk&GhSe%Wci+Voy`9*15ii)W}hxcVyD?)HOF zSLPiq>q@HM+liZMESOwX6r%;Bm~^xxp=yn~IZu(Cde_mbTlWzw3wZ z9Bz||-WpHF9Pa6f)^PKiFftRBy@aSDRK=qC#omg&A+g9IgdK? zCm0(r?q&z%zsrrmDSa=~;4UN7u~=r574njwma6lA0+XDPOmUWTd&BYHWVwdYa-SWL zFS`fiI`74fciS@FEz7#8Uh^_hN`B5hHSi1vCW3 zn(S>d#X42)Q)7cAk4*u$B_La3AH*;VLPd}aVe06P2&AM>OQrruqh_ZWFUvzDE6JbL QkjR!ct&%=#@)?x=0mE}&Pyhe` literal 1190 zcmaJ>>rN9v6#fQ!p>+iW1T{)QtF{ZWT)cxQ;)Uv>i5C+6H*CjtV3}=pr>L*s3;4r_ zFeX%qKYRdR$;5chQvaxNH*@C9nREHhW%v8fuipUNL@kdVfg#yyg*uQ{N5)&1+LY(= z$Ox3Sl z27GPQqxR0Gil52NkdhzrqdgXsOyxm!qlojU=20Q_ ze`W8$Wt9CvQw7^xlc!c%#YWQ(F7Q=0h}y=o#B(sql3cr0PnG6zF^>gGBx%Z6)gNze zsla+ql&Pzj;jTp?aSkrwvcRE+vNe-fX#&DFS*iN}wOTA<9$pdGu$aenDugzzw)JXE zpIaSj`_{n{!x=n)lisB0spuwpEpV7l!S=drb<0+K8nxp<-P2s00*~Yj&mxumt_i{@ z(WbGkY%{9ou}W_LoF)f%agXXjDa2M_tm1bknFI~xQLu(u;{Q@N!DyX;ZAjM#GUS7 z*!_Z|ZlQx??g&nFaMJDXVEj{RIYD$Zjdh-UR4|MxPEfl`)XGV^bI2?C!fBkLU7(D! zL^;k!Ld9`>_r)H@OYR7pR)q~r=0I+caLI3~& diff --git a/bin/application/Main.class b/bin/application/Main.class index 082cd10e3ed009b6a7856b287cd9e50290a8d7a4..fdaf61b4a4985f7fb15fc4b44181d2d53fa2814b 100644 GIT binary patch literal 4328 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 Piz9fkI=>o?Qn2tJw%eFe diff --git a/bin/logic/entity/Chicknight.class b/bin/logic/entity/Chicknight.class index ac09570abe415371b622ef31df235e7ee02b32ce..93fcbad1a0bc5d11fa7a99019b604efef61320c5 100644 GIT binary patch literal 3555 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 diff --git a/bin/logic/entity/Enemy.class b/bin/logic/entity/Enemy.class index dfb42a173d0a362932839679b954baa3927441d0..9baa0555785ef459cc3a9e0cb3805b67d7e103e6 100644 GIT binary patch literal 4123 zcmai1d3;n?75-jkCNl|_0K-m53T=UzNoCsFQWZ#n43LzB1_B{T7yI(&F*9T`GrXCQ z1lPL7YK>a0wzO!Ambl>3N(Q7@>#lXzy4z~4`@a9@@}2u$mO*|szu&xj-?{hP^PTT3 z_vMLypL-0z_4sEHRR+S@d@5tb?OZ8S8jWwy*@L4&_zf()KrYJ$0%k6iwG9{v1Iik5 z9O`wI%o0W6_Cw|oGoIy+cvs2EeX0gZfmJzS_9PWGf+KJEZBCElhLWk zrc5qVYBo?GNhI1`<0*5{j_>57T`+Epb{p`wFA(^dEs6lltXDbyN&}d+;*y_q>Gs&%vZ5r@JqTRB-N@2CE&y#f*@3w4S zK+kK>%yyejM&3Q4zm(1t3CVL{HmhXA7~xOY5XZDn29{jh zR|9ocnpE1YwwW!Z_vPt&q%GPl{ya}%J>n#H&>U$k@W?iiUZrrgNauQCaTUd@YZR`< z1_rEXmlAfd;NsGI%u@(vJ2x9w%Ip;1b>_n@9S{~G8Ikuha z(MS@ab%VmL%Eew0cPQ+}jr3P^W`ewm_9aCRj>L~wQhw2A{2jH?My1IQ?OT|4>uW@Qxp^~d;^XDAH^*Sx8lY0 zI+H8ePLT+iR6!O-A`#UwFctds$)+wUFG&q1!{Uo_%w!oBtUBBR&%k^_ZE-8uO%=^+ z8+W*8vVtO&XKmL#f@LU4l~s5lUL zhnZXbc@{<_QppQD#u2j^-|3izbjB*Su)lCDwd`yWyG5E=#D!wQeg($l1!mRsSj8s=VE;f$2jL!?c& z+I^X-}Lf2z0=ID{c=#f$2SVv8M9q>7yZ?{t>($%qb(dB_NSP-k5 z#KKs3@g$bYba||ddj2kXn479_DW8or1S*I4lI6M@W zV+}`{t)&@5&(?7!&{xYA)IBXf3H+N3tWDCLy)i#o&Psp&b^I zL|BI%+#RP&i?D?{aT3yq4X`=$Q~L@Wfzu%z@eJk}7%>=cT7=;;Mw=eNE6R9n6HWD$afdtH z=?Zia6eex6`PByQht3J>wBteTQfDUf1ev zWr$S{VwFRs)g_Du_!St$Hu~K{E87^i#4O8^Y0Hsm%l9*?Zq?qc%LeG+;m5-doWvrr z!k;)@#)%0?-5d`;bdrTVv*K>(v_wQ?Dem-EC(8K1Ojz7R+)4LZSwn4vbpyffV#0N3 zh;9OOcn~EpepIbkOK`k?Jc#$PD@bGx#LnQuu}86|m!>|-pD-i{Cfxa*GN(*<;;{b= zJ~oLSzUVrOHJ!#JU(TjD`8X%%Q)lrBcBq*Mx?FY=!X9SPUdFHs-TVxdigC;QfCqFl zo%xKe7z3Z32KubWWs#?UuI`@up<>}LOyc+iYGUCpaT4>D@nr$Tr2ZPmZysYG>Ln&o zuqO5Rq^J1Ml;Q)=p?IE(Pg3#x4CBpg$mEKQ_ppohv4h>j#JHJ_;1-tet!zd8Oc9GQ zu<2%s4yGy1@a+&BWM@UCI4de4REGnr76eu?Cf}WQctFaC)}k^0B)%sd^@lOK_7nlh z_*3zS2&L=B!s5pa*KX_2ld%FD|6xLP$Z3&HwZuL%Gz&)5gJIxV{M<{46YO7dEo|rM z!huA%j9)OKzZ~DpcOlf3{Z`AGSB|l&&*FCt-e{f0AIIxYAmBgcn`xVF6B%Li8zqRN z8iafQZ1+IWB>ut{$p6Q175>Uu6?Zn^Z=CsbV_`e|7g`L%&(Bd3CI95}pIu@#@OM6| H@Q?ojL0EbV literal 4235 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 literal 2436 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 M$q8KNyAC)01#yS<%m4rY literal 0 HcmV?d00001 diff --git a/bin/logic/entity/MoleDerKaiser.class b/bin/logic/entity/MoleDerKaiser.class new file mode 100644 index 0000000000000000000000000000000000000000..66609a42c134bfe61e9b5099abef047705f5f4fa GIT binary patch literal 1280 zcma)5?M@Rx6g^XDD`iUyRzAvyP(<2ASrmyeRlZuFNYw-ki9d(!*e+~$$#x6H=kTX5 zp|K&+#0T)9jCZEBP{I$l**j<*zb~r}Oz@E3M3{!q_2G zlvT2sLx$d*TM`lUK+|vseSKgU&=5pOqPT`|3k_+wix8En@t{>D|$>FnwcRI3?lnBU=<)n~;Vn+-C^q_V!!N zCyU4YjDKtxHB&gku&TT)j9qE7vcimpluQV!07I;3IpS@-dL+E}l9hBSx+b>|xo64m zwzJo-ST%-;wi>sIoTauK^ycX$W&5OJN-T!q+eIV^OCCRGNT<7-Ho0@gYsQYpPb-#L z%ejs(8om-eP&OIn{%bp3Wc{?neL7Q5T3%RGUh9EtTcr(8@Gzdyfx5&ZrB4M(Z2H_O z+ak2SMDs;YXnk6(1lIq7LJLH&j8%F6Yjg=TF8O@sQ0ly)VG}u$q4uvH!&G#0- zG1=gT?{o8H({{}hNwlqDM-uh(D?dZzz^!|x*tXP-bq)KXJQ8LowTD^^(2qt^AsR?p zgA}20B^#ly&*YQdC4D|K7Q95i9uGGWRW_!_OHB;w`gaUAk zHbrcJ`U_xyI1`8>NhpOF(ul*L@qa)&bo7#4!W zNMI#_=Lx(>AbW{dO{`zF6j5!YFoM}@oTDAie1~(j%^6pm1N11at(#o)q+jM5SG>a| IM=yZgza91Q(f|Me literal 0 HcmV?d00001 diff --git a/bin/logic/entity/Player.class b/bin/logic/entity/Player.class index 1cfb3ff00fb832851bb2fca6829afae94c79fcb6..0512284d45f565d76ee9f5d7bcc8e80a55abd74f 100644 GIT binary patch delta 119 zcmca*ded}+6hEgu0~-)BFf5*|%ItD$4DGd4yvl$E+<}(;FEM_ob$Oh`xVqgK8!H~m{3#37;JceKfMldTM$YKVu KHirnbasdE}{}sys diff --git a/bin/logic/entity/ShadowPot.class b/bin/logic/entity/ShadowPot.class index 22d1cf4e5f53877ee67039acdf15966156a662f5..dbe6a78ef9fd479d4543c9406ab6dd79c1985eb9 100644 GIT binary patch literal 2971 zcma)8`*$2=8Ga_0-R$N|x=qsyCA}aG-JO(fQxHnirb)AH64`{bfzp6rC$p2?X(l_% zWVQ)Z5fr&90xFc2o2W!ZL^<7Ur2^`Y{w4kkder0d&TOuPbIdt2^X~h7-+Ou9=Y7BY z{lA}n4&WI68bzIkEsmSF&9qhYZU6D~c)`fIb7QU_MT3U6Rcj}T*39D?B1i0^?e}W9 zIho01!yS2J#!3(Jl@((>sWTcH2Hcz#M?GQ+jflk1jFu>rh8?p7!?SYtO`f+*KYiLN z<}A;cbgUuQp`_4?4H}xp$4=Y%g5RxSd-l9>!I+v)&ze@zO4~C=-bxS4yC((>8x`8* zL}RcZns$ZF*h0;WF+Wt&pbd+5o5D?^Z86K9$83iz!|@A|zENVqKiRTFVJCL+V9s(3 zW~ya0Y{=S0YqUHwX?gcclmsQ~nuc@6@ND^AQ#SYodzMaWc&tUUhsNgl&}dAs3Sc7k z>%&Lza-K1#A(>pAyJ-|J7_;d?&nOjab9TTj`qsQpxFz~7g?+f44sy0fWNo)7u?lu+ z$0+90qfaNg-4R9Aw8FNuw(9p38xi$L~=D}`iAX&}^Jk3Z57Ztv} z90IFQ#*+%)UEDb#d!APKp6qE1{KYYiXJkVCfDSp(zH*`od7o2w9xt$Sj9hNinp;kv zt(?q$36x+CYCd~pT`*a=(h`6gHmzfTV3tcc5rrw#V?M!ev}xA&A#luwBE}WNLL>;R2`X+qf9TI}9mo z)7mr(mu0mW$ItPLDBjo5x;#Wi48Nf8OZ-Z(Wi=1-OGHx{*}b6fYy5_3m@fIykPOrs zK2)%Ao@s_TdzC|Gu3c`dxNtr(-E>dQ; z5Qn?i=?|vJamO_|Ff@Fo@VQX7Ic$YMPxs?)*)y$^q&jn6x+V8Z_PB+|>H|L!O1$j& zj`H`@lp_3g>U&c+HC{uL{t4n0B=iK|n{@puHdU}yZ^!luI{wIwb=b}K_TZ306I!r= z*WqTqcOZd1*hp7^jt0Iv@ipAauSk2ai!Md#q$Htq%DiPLyhD%*!_n@cU0JKpu|6?U z#r_ZZ3wWJR9S*)HA>SOC`&$RUd-t{7S;bwKabf}9zP7`G99h5=&mO6wH_`q+c2gc` zJNW@xnAZ^VTEJi}!v!3rbZ?-$F zCJ;*yRxpJ;VJcADhSn^1b&$qEJ*5YyXUr$Em^f#xKHDlTR9uB&*9Kc2`_ zc$dOV{yN^P;Hh=>*YUw{vh~tiV)xDp^uX?63Ov}+`o?8!7D)_O@!J}W^$D(R$kzxR zR_r**3mj#@y`=LoY(+l_eVnx!z>s`-#~ey z9e-%YC+)b}j_NgBub{MCq(6U#JwoO_ Qy24gs$<`N)s1ASmAA^#gPyhe` literal 2966 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 diff --git a/bin/sharedObject/RenderableHolder.class b/bin/sharedObject/RenderableHolder.class index d537f4d667cce2ee70b6dbf3ea3be7f39f667cf4..b363080c4ddc8f6b1fe8b9c704dcdbc3bd73992a 100644 GIT binary patch literal 8776 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 K#&7dGH2V)067J9d literal 8236 zcma)B4SZD9l|N@DWRl4xKoAvBKtv@$8Nn9Y1{IPZq$UuO5CpaOl6fSL%*-2SUJ`;I zRcmQgwA%WGwbWW$wbfQd`H-P!-K#=Nob7{BW^k>`+eg>@s zRWZ%n<%~M1jFTHo85&cKmn#NNZop+)*l|J&%^STsjz=3jaC0=2A^6o_I zWuaRtY=tUz7dpxCsVL1Dbh7TIQMaIfF$qj6?~D`$l5VYZJKfv}-d*%Za_N?lAnKbmS*;J3Dasqsn$F!v*?wRR-!`K=i*uXoX4LC@q0v(jO2Wkv4- z(@Tyyfm;ZPrW5k&13#}v-Ra~*Du7aF20AkS5~2!v&z8Ck{XUj4TgjPjz!GVe=~uj_ zE@Qv61~&S`_ZRcdST1r^I-#pIs|PY(&I>Na)Glr8W2$QP({7TOdKC3i7gP0Wd0q>s zPti20)(1&wg zl*4pu#wiv%Fh_1dQIQarX2G4F@nYa+%hR@asTqw#_MV{N0p{EwwWYhGIZ30m zJ3(WZa>$zIl{C+>ra>S;y|-Gt-89-$tc ze*PgvGxhTiV}9)CvQhD=M!b(Gnx%QSVukhoE2g$a(Ke#ou4uNV+<_fpDC@%@95Fto z=p@a!yTpiMbHw6SF}Mhzkz*N$?Pn9_Dx0Yn)Gd^xs{|a+C|pBqv-vb_&saJ zCs2N%=rT?DW9;e3RxjdWWa3X1b?E0mvgXMI%ZTw4MV*@Qvx$t-iu{?PjhgZ2Na9+D zyn*4I4(F+IGYS#2A6UdSsL=OD5qPbe*Z{JR%+#=8DBTTHOko${ePp zoz9?#leyO~1in{vQxp1nvQ|WcKSj~GT5s+<(<{AizM}KA-swz@6YNiXpA4_`!i9>K zYsE9(plt#={#chEq)M%dQJtgce9di~np?8FOwkI>Jr9dnvQ}xg zycId6=v|t<0$XtscI8+vP;`MNzxxE_k{=f;TB*tJMY%VXWy_IfMeo-1ix9iYbe&H} zOM8i;RhqFDlYq}<)6UIf-cC%J)h?|{tD*}vciq(7lB4Sty+?D~5rQmRwq42KBR?)v z^j^*HJTbpyf0Ls3Y5r!Mf>H*hx~$qLvf88Q49(ht@f((|1av(WF}5mNL^Be+4P&av z`6g5bHGBnX%J!VD$#f;Le9Re5^5t|LVmg07(M5D|4PT8j(i9#$^8T1x*wOElUevE> zHO)Yl?WEIK>7|ufs9jJu_SN!E9!fCE6|3SmNuy$qcfpE3f?RTrNgF*s)rFifKnmzO z+2$G^NOG3_1S3^7DRw18ab72a3Dm;5Ad{=(0tX33s$4IrW$8{p@c@rZNEpq%Lv!Qy zB#-fUf_LM2S*z90WN>@o`MILvJ$x;a@FD^XzTznE3FjX!%>f zx4Ffs$vD~mw6o-VrVCH7^{1YtMvQqce^K$1G8J%fdxF0-adpJ)@gzURPb+?gpT(^L zm|OiqCXEjqYtqIP^AVO~zP>T&k+Sttxdob2zS1%`Zp-zC!WY=$`vIoS$#=TJke@Cl z`6wSt@C!JoWy{HYd%016*iCiFC_!{~Is>>28&~`l{wk(4TZWjvYgb^QrZK+3$)!;* zE$Q(6;gNj!jo5{pRVP*`_KxRWoBqxpnpd7!*WOv7_J@`DEXH@eMrgQ8eh2NIt zYZNuwXY$u@eZa3Mew?3x>dQ0v36!+$xtv>&TG=fo_?t{;y=7`Ao1g@L8|U$fso3CV zHgOVQ3*b7T1<5h4G0=+X8wQ}Y(oUj}i-S^sI&jp(cvh?HUXiG4MK**IMXdBus)|HG zDiRf^NR*W#k@AZ~A}B9VQGL^353iIPYpK_Zcah(zWh66uaeWE&!p zQ;0;qAQHKNNSyH^adwMr4keC8>Ejp`iCSAE3Tlz4nnj{E7KsX2Bx+odsANT=R27MG zR3wT`k*Fs{qFfY-nouNaKar^LM52y^tijJF>cURgjNU5j3;nPD81c5l)P0b)9HFhx z0Ey9djmxg8rzDc(=}365kS7Ff+@FOuHi5&y=QbUtE1QndRWP*UdAhpk1?neyo_3ba zHBc3ZDg4!wz5>q#V`ns` zEfkljYW^`A-qw&kLjEBdIZW3cq#Fde(L!z(EaX8!9ewL4Io?|0l?s7V>+I%w{S>95Yar1yviU z#)6UtQWjKipqUobV4#yM=wt((YC-c1beaV%Fwi0kT5O;t7Ie0OmReAgfzGv{s*nT^6*;K<}}j_Zeul1zl{QH5Sxjpf(G-)Ib|7==}!ju%L|w>aw721NB-^-!Z-% zE3`d?_{xKPm0|6$SWY=0y@5)LaGThG`@$u-3|xiFz76=q{Hy~D&o8j$z9K~JDZ0Oai-}xx_a4Bz9vRnbrZikkMO8& z9_8zpHaj<#g5}B!k9S0 zdnv&;>0^WWo+$j&0~nD$(^`zn_oB8)uYQcq*4_C>d4Ehhew07Ow4drj@L>%07Ct`z zq2s^M2!8dL%VU@)$I?AGvhKw$xeo`}J@D%R+;{I6-%mDg41HJB#GmCy;g$BdhT?Cc zHeMJ*|8x9#FeM}7$K?D?VTAhVo2K78@qBwojGMD@nlU~zsgp~nY=+W^_u&AMqyDRdE?9N&$;udYI$ycORaTgxE#hhr!n!(mRvl+< zjf!Sap>Vk75BZ3Lkp&w%LJA5C1YFn!@6NH(+>udnZ+gfrrF+Mp{yffy2bbzGx zHztjj(n}Cz)4NjFZf(ACZ~oQr=|^Q=1)fP1R+H!o2yA3weOUkJa-V&lZc%tb zfL=e7&M6m9LE%kDK3`avC}dQ~;rMF8j^fvK{A+)o%*}l-IwQB>oc^s_PRtf_7f!x< z`&I>ugcL*GD<9Jk_g4$QJu5o!o6}$hQ`>uu&56$rDVA5)^Sr2j_$Qg?gDg|o)X(dc z&%Kpuo!_Yamt9;lYfmtn<7r?#@TEq0ruq6ZXaU(AKnwzxf+qt>&H|6fVg?2gUl3-T za;jIKfq}U$GbExU!q>+tIX_n~F(p4KRj(qq0IbWV!V1XDO)W`OsL0L9E4HezRRXK9 z0GK4GQ<#=IWDQi$wiq3C7Jno z3LtY6lk!VTY?YKi7Qq3;ohiw1dkRX6a=^BvBKW=|(^rz2hHznC zF*G=U0izF+0ctbAs?D>YB-sQQQmz$1_dxvzbZ9cz-r|xJeIy0?Mg|5Jx&}tNMwa?; z{{fwElag#zl39|I3Jy59f50K=m{Wo(3Q`XWf}BiH$Xewj=B3*zRp_RqrX`lEMl}T@ifXuxJ{EV_fP8Ni8I)R_pHm77e>+2CBO7p-pok)3 z0-_@Vs}5vQbR7X1`6cMU^3c4@5<8dyXu?Rk zkYdRS8gL=t7{LrqoJyg_L4p=3#X_9VJbV@L(# z+sNA!4;k?An42Fqb(R0(VEe^E-lVjqP@{QA??>lNsjO_D88_~kR%YJy@qkJ1^@0Qo z1DPKQ>}Gto)(1F8txw~fGBLjHTboi zDi*m%kr6H-CL)hcuDIR(snl@capeGAyJs8{pH4_0zItqpb%Gk_lI+T**JhSCrLvdo zbbi7j$+av zbAM{yO~0e68#l?gwa`!@^pEJHyWbgvR^ENP^@o_UJNuR$>XFg6z8;o|s@V}|z3oNA z{kLVS*ZwxD=(c_Eyl7_!>)W#3I^SyS(x0zY*X0o?cKZ1HZ{5asC01vX4^_-c_{gEt zvV_g@;}$kv#~iKsp?A(QsP#Bm9-F_@@>oRuE-3{;je`-h9%MDB7Osvt%%H7)-?TrQ z{X=-{IUP>5?Qz!6vlu3x<~(yYv(@us9@~S5YHA|M9aFhh9^E;Q#ZyAQD8OLSdV%|2 z4ri=pe0BesHp?RWm9MjeqvRO3{t&5NTp>DNjJc;`{p@Ae8nm{DPw=wY9Fxr(;pjbo zQhuhxkLRApWPwltqHZ+_Au9?s30tp$Z=Cm9$iv?V6b|QR=+JKL@QX z3*A@nR-}B}-;t>)6;Q?UC-sH)v6k-5d!DLsyi$3zS)!Bij$45FF8v2J@3V!bik8jp z|5*1Z)XRz6B9Qa+j^#>jjX||fPN{ZhcQr(-iKrbc{&++ES=ZU) ziJiQpR5Q|4>Nxg$U(*y=*ZIo{H~}Z%1e|~qZ~{)?e-bz~wmm5OHPh9ik=C@trnwOAu@&gdvFbuVs_c^NLr$t5F+5afDWT>CdhUTM5Pb;VWRK^Z+L?05z7U zg5R|7D00OV1b|`@qOwR32^;+wT*+ql>uW3}-kQH^Xbd1$fU)Igr8faE3_}IbsF;p3i4%-;c>h z>;XT|=TmLya=AovACE_L96g8tpw`6A_kBN`cfa3X=OL#h1jH>cGqQCOGau$~AUt=g z9xC1p014(sDMrWG80DakO#x^OYI2YengT!yN7ZrwD3X6it&0KmxJxk@g8EZRGG4LYM*a{=t&rB2I30$Bd@B!VXS zbVxk~X!(C63q?f0h788lJyXU404ayStQw(z)HIr2Y9*b^_@sMt;GJOxFja2Y1xmIeKoRdr#D{*6*d}=Noc`a!iSzlF4l>{$_AQ|5+rr866I4!8%jCf-w-~^n2 d6L11{0)HuOg64HyHckKl002ovPDHLkV1gbgLY)8r delta 747 zcmV10O$g1 z>+GD*^mqWUGZ^YU`=?MI0D?kuv_0ZEHzit4uXw(4JdOtnWk=`xM5C9GpF~e)o z*fM&ym!*9Q0Ed`mE=!+v5QG!}+`t0@nPDA0dUW+#eXM``ralQuab#Ma*T$@4q+``a z=2Le-#6WM&3;^;%lztGJ5ncl?4M3ZnaeR9K;d{Wy_LRRh@6{X8_iD;|_BQ-45HZAS zxS2Fi<$D(Zhd5)HH7bH=-UHb9necKg>1At5{mAzwfQaD8no1D103b+JAeaDF7+le# zw<95dmBxQo_Chcq095#2=MDgNToKfB)nDcTz<<5cR<1GtR_+41yUGBtuF&lHHvs4= z%r+qPQGa>0WNq}j)_VgG6`j3Kn~wHFI+p-IfsuI+2y6Wt0ISH;Xl5<>%l7yNV5a#I z?a^?fb=Ibem23DIjqsINOB7>?WXz42?e!twUL6R48m)xjHQfW@ zId1}30byrwhSUVWMVY&yLTJuK;}8H|-~mxBC}+^43xHg#VO%A!%s}760JP9mk4rrW d?SOcD06%Ag7(E>Z)zJU|002ovPDHLkV1n%2S>ONw diff --git a/res/Tiles/GrayTile.png b/res/Tiles/GrayTile.png deleted file mode 100644 index bbb1dc646be4887d2bb66df03e590a61c4f6b512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!V6vx+V@QVc+w&WF4;b(qFfjjL|Md8-C+tcM pJ2I|q-~D-0@$WTkTPT2QX3DpUFrDmuZUnN9!PC{xWt~$(69Cr?Ln{CP diff --git a/res/Tiles/WhiteTile.png b/res/Tiles/WhiteTile.png deleted file mode 100644 index c7a0bfd38322a9eeaf1efb575506acd8bf3867d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!V3MbcV@QVc+w&WF4;b(qFfjlB|Bc?yMh*qN pSzq72+w_w}XYwvyzehajX!PC{xWt~$(696vQLKXl3 diff --git a/res/Tiles/blackStarTile.png b/res/Tiles/blackStarTile.png deleted file mode 100644 index edd2c86f60f9433a8d3a37d015f47a06e5666666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!poyo8V@QVc+Z!8s84P%s9KXfSGKo}})O}*t w>N-{q28Q*w?g7o0NXY@JWjJ70XV36&qRgpcjvr-A>$N~)p00i_>zopr0GtOZ+W-In diff --git a/res/Tiles/blackTile.png b/res/Tiles/blackTile.png deleted file mode 100644 index a51bd331cb40bbdbc3ad52a584565ba56a2fc9df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!pt7fnV@QVc+k=d}K;EGR-~Ds>*;#;07?`t~ X(ZGR$ktZSlD@e%G)z4*}Q$iB}IL{x3 diff --git a/src/MainMenu/GameMenu.java b/src/MainMenu/GameMenu.java index e1ddd4a..0652d3c 100644 --- a/src/MainMenu/GameMenu.java +++ b/src/MainMenu/GameMenu.java @@ -1,6 +1,6 @@ package MainMenu; -import application.GameStart; +import application.Main; import javafx.animation.FadeTransition; import javafx.animation.TranslateTransition; import javafx.scene.Parent; @@ -10,95 +10,98 @@ import javafx.util.Duration; public class GameMenu extends Parent{ - - public GameMenu() { - GameMenu gameMenu = this; - VBox mainMenu = new VBox(10); - VBox playMenu = new VBox(10); - - mainMenu.setTranslateX(1280/2.5); - mainMenu.setTranslateY(720*3/4); - playMenu.setTranslateX(1280/1.5); - playMenu.setTranslateY(720*3/4); - - //Main menu - MenuButton startBtn = new MenuButton("START"); - - startBtn.setOnMouseClicked(e->{ - transition(mainMenu,playMenu,-640); -// gameMenu.getChildren().remove(mainMenu); - gameMenu.getChildren().addAll(playMenu); - }); - - MenuButton exitBtn = new MenuButton("QUIT"); - - exitBtn.setOnMouseClicked(e->{ - System.exit(0); - }); - - MenuButton optionBtn = new MenuButton("OPTION"); - - optionBtn.setOnMouseClicked(e->{ - getChildren().add(playMenu); - transition(mainMenu,playMenu,-640); - - }); - - //PlayMenu - - MenuButton playBtn = new MenuButton("PLAY"); - - playBtn.setOnMouseClicked(e->{ - FadeTransition ft = new FadeTransition(Duration.seconds(0.5),this); - ft.setFromValue(1); - ft.setToValue(0); - ft.setOnFinished(evt-> setVisible(false)); - ft.play(); - - GameStart.start(); - - }); - - MenuButton ContBtn = new MenuButton("CONTINUE"); - - ContBtn.setOnMouseClicked(e->{ - - }); - - MenuButton backBtn = new MenuButton("BACK"); - - backBtn.setOnMouseClicked(e->{ - gameMenu.getChildren().remove(playMenu); - gameMenu.getChildren().addAll(mainMenu); - transition(playMenu,mainMenu,640); - - }); - - - Rectangle bg = new Rectangle(1280,720); - bg.setOpacity(0.1); - bg.setFill(Color.PINK); - mainMenu.getChildren().addAll(startBtn,optionBtn,exitBtn); - playMenu.getChildren().addAll(playBtn,ContBtn,backBtn); - - getChildren().addAll(bg,mainMenu); - - } - - public void transition(VBox menuToOut,VBox menuToin,int Xtrans) { - TranslateTransition ttOut = new TranslateTransition(Duration.seconds(0.5),menuToOut); - ttOut.setToX(menuToOut.getTranslateX()+Xtrans); - - TranslateTransition ttIn = new TranslateTransition(Duration.seconds(0.5),menuToin); - ttIn.setToX(menuToOut.getTranslateX()); - - ttOut.play(); - ttIn.play(); - - ttOut.setOnFinished(evt-> getGameMenu().getChildren().remove(menuToOut)); - } - - public GameMenu getGameMenu() { - return this; - } -} + + public GameMenu() { + GameMenu gameMenu = this; + VBox mainMenu = new VBox(10); + VBox playMenu = new VBox(10); + + mainMenu.setTranslateX(1280/2.5); + mainMenu.setTranslateY(7203/4); + playMenu.setTranslateX(1280/1.5); + playMenu.setTranslateY(7203/4); + + //Main menu + MenuButton startBtn = new MenuButton("START"); + + startBtn.setOnMouseClicked(e->{ + transition(mainMenu,playMenu,-640); +// gameMenu.getChildren().remove(mainMenu); + gameMenu.getChildren().addAll(playMenu); + }); + + MenuButton exitBtn = new MenuButton("QUIT"); + + exitBtn.setOnMouseClicked(e->{ + System.exit(0); + }); + + MenuButton optionBtn = new MenuButton("OPTION"); + + optionBtn.setOnMouseClicked(e->{ + getChildren().add(playMenu); + transition(mainMenu,playMenu,-640); + + }); + + //PlayMenu + + MenuButton playBtn = new MenuButton("PLAY"); + + playBtn.setOnMouseClicked(e->{ + FadeTransition ft = new FadeTransition(Duration.seconds(0.5),this); + ft.setFromValue(1); + ft.setToValue(0); + ft.setOnFinished(evt-> setVisible(false)); + ft.play(); + Main.isStart = true; + Main.GameStart(); + + gameMenu.getChildren().remove(playMenu); + gameMenu.getChildren().addAll(mainMenu); + transition(playMenu,mainMenu,640); + }); + + MenuButton ContBtn = new MenuButton("CONTINUE"); + + ContBtn.setOnMouseClicked(e->{ + + }); + + MenuButton backBtn = new MenuButton("BACK"); + + backBtn.setOnMouseClicked(e->{ + gameMenu.getChildren().remove(playMenu); + gameMenu.getChildren().addAll(mainMenu); + transition(playMenu,mainMenu,640); + + }); + + + Rectangle bg = new Rectangle(1280,720); + bg.setOpacity(0.1); + bg.setFill(Color.PINK); + mainMenu.getChildren().addAll(startBtn,optionBtn,exitBtn); + playMenu.getChildren().addAll(playBtn,ContBtn,backBtn); + + getChildren().addAll(bg,mainMenu); + + } + + public void transition(VBox menuToOut,VBox menuToin,int Xtrans) { + TranslateTransition ttOut = new TranslateTransition(Duration.seconds(0.5),menuToOut); + ttOut.setToX(menuToOut.getTranslateX()+Xtrans); + + TranslateTransition ttIn = new TranslateTransition(Duration.seconds(0.5),menuToin); + ttIn.setToX(menuToOut.getTranslateX()); + + ttOut.play(); + ttIn.play(); + + ttOut.setOnFinished(evt-> getGameMenu().getChildren().remove(menuToOut)); + } + + public GameMenu getGameMenu() { + return this; + } +} \ No newline at end of file diff --git a/src/application/GameStart.java b/src/application/GameStart.java deleted file mode 100644 index c5fb7f8..0000000 --- a/src/application/GameStart.java +++ /dev/null @@ -1,71 +0,0 @@ -package application; - -import drawing.GameScreen; -import input.InputUtility; -import javafx.animation.AnimationTimer; -import javafx.application.Application; -import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; -import javafx.scene.Scene; -import javafx.scene.control.ProgressBar; -import javafx.scene.control.ProgressIndicator; -import javafx.scene.layout.StackPane; -import javafx.scene.layout.VBox; -import javafx.stage.Modality; -import javafx.stage.Stage; -import logic.game.GameLogic; -import logic.entity.Player; -import sharedObject.RenderableHolder; - -public class GameStart{ - - - public static void start(){ - final int width = 1280; - final int height = 720; -// VBox statBar = new VBox(); - ProgressBar hpBar = new ProgressBar(); - hpBar.setStyle("-fx-accent: Green; \n -fx-background-color: White; \n"); - hpBar.setMaxWidth(width); - hpBar.setProgress(1); - ProgressBar manaBar = new ProgressBar(); - manaBar.setStyle("-fx-accent: Blue; \n -fx-background-color: White; \n"); - manaBar.setMaxWidth(width); - manaBar.setProgress(1); - - Stage gameWindow = new Stage(); - gameWindow.initModality(Modality.APPLICATION_MODAL); - VBox root = new VBox(); - Scene gameScene = new Scene(root); - gameWindow.setScene(gameScene); - gameWindow.setTitle("Test"); - - GameScreen gameScreen = new GameScreen(width, height); - GameLogic logic = new GameLogic(gameScreen); - root.getChildren().addAll(gameScreen,hpBar,manaBar); - gameScreen.requestFocus(); - - - AnimationTimer animation = new AnimationTimer() { - long previousTime = 0; - double drawInterval = 1e9/30; - double delta = 0; - - public void handle(long now) { - delta += (now-previousTime)/drawInterval; - previousTime = now; - - if (delta >= 1) { - - gameScreen.paintComponent(); - logic.logicUpdate(); - RenderableHolder.getInstance().update(); - InputUtility.updateInputState(); - delta--; - } - } - }; - animation.start(); - gameWindow.show(); -} -} diff --git a/src/application/Main.java b/src/application/Main.java index e63fa1a..0ddbac5 100644 --- a/src/application/Main.java +++ b/src/application/Main.java @@ -1,60 +1,123 @@ package application; +import MainMenu.GameMenu; import drawing.GameScreen; import input.InputUtility; import javafx.animation.AnimationTimer; +import javafx.animation.FadeTransition; import javafx.application.Application; import javafx.scene.Scene; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; import javafx.stage.Stage; +import javafx.util.Duration; import logic.game.GameLogic; import logic.entity.Player; import sharedObject.RenderableHolder; -public class Main extends Application{ - - public static void main(String[] args) { - // TODO Auto-generated method stub - Application.launch(args); - } - - @Override - public void start(Stage stage) throws Exception { - final int width = 1280; - final int height = 720; - // TODO Auto-generated method stub - StackPane root = new StackPane(); - Scene scene = new Scene(root); - stage.setScene(scene); - stage.setTitle("2D Game"); - - - GameScreen gameScreen = new GameScreen(width, height); - GameLogic logic = new GameLogic(gameScreen); - root.getChildren().add(gameScreen); - gameScreen.requestFocus(); - - stage.show(); - - AnimationTimer animation = new AnimationTimer() { - long previousTime = 0; - double drawInterval = 1e9/60; - double delta = 0; - - public void handle(long now) { - delta += (now-previousTime)/drawInterval; - previousTime = now; - logic.checkGameState(); - if (delta >= 1) { - logic.count(); - logic.update(); - RenderableHolder.getInstance().update(); - InputUtility.updateInputState(); - delta--; - } - } - }; - animation.start(); - } - -} +public class Main extends Application { + + Scene gameScene, mainScene; + + public static void main(String[] args) { + // TODO Auto-generated method stub + Application.launch(args); + } + + public static boolean isStart = false; + private static GameMenu gameMenu; + public static Stage stage; + private static StackPane root; + private static ImageView bg; + private static GameScreen gameScreen; + private static GameLogic logic; + private static AnimationTimer animation; + + final static int width = 1280; + final static int height = 720; + + public Stage getStage() { + return stage; + } + + public boolean isStart() { + return isStart; + } + + public static void GameStart() { + + System.out.println(isStart); + root.getChildren().removeAll(bg, gameMenu); + gameScreen = new GameScreen(width, height); + logic = new GameLogic(gameScreen); + root.getChildren().add(gameScreen); + gameScreen.requestFocus(); +// +// + animation = new AnimationTimer() { + long previousTime = 0; + double drawInterval = 1e9 / 60; + double delta = 0; + + public void handle(long now) { + delta += (now - previousTime) / drawInterval; + previousTime = now; + logic.checkGameState(); + if (delta >= 1) { + logic.count(); + logic.update(); + RenderableHolder.getInstance().update(); + InputUtility.updateInputState(); + delta--; + } + } + }; + animation.start(); + } + + public static void GoToMenu() { + animation.stop(); + root.getChildren().remove(gameScreen); + root.getChildren().addAll(bg,gameMenu); + } + + @Override + public void start(Stage stage) { + + Main.stage = stage; + Main.root = new StackPane(); + root.setPrefSize(width, height); + + gameMenu = new GameMenu(); + + Image img = new Image(ClassLoader.getSystemResource("Elysia.jpeg").toString()); + bg = new ImageView(img); + bg.setFitWidth(width); + bg.setFitHeight(height); + + root.getChildren().addAll(bg, gameMenu); + gameMenu.setVisible(false); + + Scene scene = new Scene(root); + + scene.setOnKeyPressed(e -> { + if (!gameMenu.isVisible()) { + FadeTransition ft = new FadeTransition(Duration.seconds(1), gameMenu); + ft.setFromValue(0); + ft.setToValue(1); + gameMenu.setVisible(true); + ft.play(); + } + }); + + stage.setTitle("2D Game"); + stage.setScene(scene); + stage.show(); + // TODO Auto-generated method stub + +// +// + } +} \ No newline at end of file diff --git a/src/logic/entity/Chicknight.java b/src/logic/entity/Chicknight.java index 4fbdb0a..a8b224e 100644 --- a/src/logic/entity/Chicknight.java +++ b/src/logic/entity/Chicknight.java @@ -18,8 +18,6 @@ public Chicknight(double x, double y, GameLogic gameLogic) { this.z = -100; this.speed = 1; image = RenderableHolder.CKRight; - initSolidArea(); - initAttackBlock(); } @Override diff --git a/src/logic/entity/Enemy.java b/src/logic/entity/Enemy.java index 45ff935..7fb5dfb 100644 --- a/src/logic/entity/Enemy.java +++ b/src/logic/entity/Enemy.java @@ -14,6 +14,8 @@ public abstract class Enemy extends Entity{ public Enemy(double x, double y, GameLogic gameLogic) { super(x, y, gameLogic); + initSolidArea(); + initAttackBlock(); // TODO Auto-generated constructor stub } @@ -78,8 +80,6 @@ public void update() { super.update(); solidScreen = new Rectangle(screenX+solidArea.getX(),screenY+solidArea.getY(),solidArea.getWidth(),solidArea.getHeight()); Player player = gameLogic.getPlayer(); - canAttack = canAttack(player.solidScreen.getX()+solidScreen.getWidth()/2, player.solidScreen.getY()+solidScreen.getHeight()/2, solidScreen.getX()+solidScreen.getWidth()/2, solidScreen.getY()+solidScreen.getHeight()/2, - (int) (attackBlock.getWidth() + solidArea.getWidth())); angle = Math.atan2(player.worldY - worldY, player.worldX - worldX); } diff --git a/src/logic/entity/EyeOfQwifot.java b/src/logic/entity/EyeOfQwifot.java index 1cc3007..ddd4043 100644 --- a/src/logic/entity/EyeOfQwifot.java +++ b/src/logic/entity/EyeOfQwifot.java @@ -13,8 +13,6 @@ public EyeOfQwifot(double x, double y, GameLogic gameLogic) { currentHealth = maxHp; z = 100; image = RenderableHolder.EQ1; - initAttackBlock(); - initSolidArea(); // TODO Auto-generated constructor stub } diff --git a/src/logic/entity/GriszlyEye.java b/src/logic/entity/GriszlyEye.java index b7f8fea..f819300 100644 --- a/src/logic/entity/GriszlyEye.java +++ b/src/logic/entity/GriszlyEye.java @@ -19,8 +19,6 @@ public GriszlyEye(double x, double y, GameLogic gameLogic) { this.speed = normalSpeed; this.dmg = 3; this.image = RenderableHolder.GERight; - initSolidArea(); - initAttackBlock(); } @@ -99,7 +97,6 @@ public void update() { public void initSolidArea() { solidArea = new Rectangle(20, 0, 24, 32); - solidScreen = new Rectangle(screenX,screenY,8,8); } diff --git a/src/logic/entity/Mole.java b/src/logic/entity/Mole.java new file mode 100644 index 0000000..c1f8043 --- /dev/null +++ b/src/logic/entity/Mole.java @@ -0,0 +1,62 @@ +package logic.entity; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.shape.Rectangle; +import logic.game.GameLogic; +import sharedObject.RenderableHolder; + +public class Mole extends Enemy{ + protected String rank; + public Mole(double x, double y, GameLogic gameLogic,String rank) { + super(x, y, gameLogic); + this.maxHp = 100; + this.currentHealth = maxHp; + this.z = -100; + this.rank = rank; + if(rank=="DerKaiser") + image = RenderableHolder.moleDerKaiser; + else + image = RenderableHolder.mole; + } + + @Override + public void draw(GraphicsContext gc) { + // TODO Auto-generated method stub + gc.drawImage(image, screenX, screenX); + } + + @Override + public void update() { + // TODO Auto-generated method stub + super.update(); + if (playerfound(1000)) + currentState = "attacking"; + else + currentState = "default"; + if(currentState == "attacking") { + Player player = gameLogic.getPlayer(); + angle = Math.atan2(player.worldY - worldY, player.worldX - worldX); + double xDirection = Math.cos(Math.atan2(player.worldY-worldY,player.worldX-worldX)); + if(xDirection<0) + direction = "left"; + else + direction = "right"; + + if(delay==0) { + attack(gameLogic.getPlayer()); + delay = 1*60; + } + delay--; + } + } + @Override + public void initSolidArea() { + solidArea = new Rectangle(16, 8, 32, 48); + } + + @Override + public void initAttackBlock() { + attackBlock = new Rectangle(0,0,0,0); + } + +} diff --git a/src/logic/entity/MoleDerKaiser.java b/src/logic/entity/MoleDerKaiser.java new file mode 100644 index 0000000..445e5f7 --- /dev/null +++ b/src/logic/entity/MoleDerKaiser.java @@ -0,0 +1,43 @@ +package logic.entity; + +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.shape.Rectangle; +import logic.game.GameLogic; +import sharedObject.RenderableHolder; + +public class MoleDerKaiser extends Enemy{ + private int width = 7; + private int height = 7; + public MoleDerKaiser(double x, double y, GameLogic gameLogic) { + super(x, y, gameLogic); + this.maxHp = 100; + this.currentHealth = maxHp; + this.z = -100; + image = RenderableHolder.CKRight; + + // TODO Auto-generated constructor stub + } + + @Override + public void draw(GraphicsContext gc) { + // TODO Auto-generated method stub + + } + + @Override + public void update() { + + } + @Override + public void initSolidArea() { + // TODO Auto-generated method stub + solidArea = new Rectangle(16, 8, 32, 48); + } + + @Override + public void initAttackBlock() { + attackBlock = new Rectangle(0,0,0,0); + + } + +} diff --git a/src/logic/entity/Player.java b/src/logic/entity/Player.java index 6b1d241..5254704 100644 --- a/src/logic/entity/Player.java +++ b/src/logic/entity/Player.java @@ -28,7 +28,7 @@ public class Player extends Entity{ private int healthBarY = (int) (11*1.5); //Status - protected int maxHp = 200; + protected int maxHp = 50; protected int currentHealth = maxHp; protected float healthWidth = healthBarWidth; protected int dmg = 10; diff --git a/src/logic/entity/ShadowPot.java b/src/logic/entity/ShadowPot.java index 8ae7a16..4097692 100644 --- a/src/logic/entity/ShadowPot.java +++ b/src/logic/entity/ShadowPot.java @@ -7,16 +7,13 @@ import sharedObject.RenderableHolder; public class ShadowPot extends Enemy{ - - private int cooldown; + public ShadowPot(double x, double y, GameLogic gameLogic) { super(x, y, gameLogic); image = RenderableHolder.SPRight1; maxHp = 10; currentHealth = maxHp; - cooldown = 1*60; - initSolidArea(); - initAttackBlock(); + delay = 1*60; } @Override @@ -24,15 +21,21 @@ public void draw(GraphicsContext gc) { // TODO Auto-generated method stub switch(direction) { case "right": - if (gameLogic.getCounter()/10%2==1) - image = RenderableHolder.SPRight1; + if (gameLogic.getCounter()<20) + if(currentState == "attacking") + image = RenderableHolder.SPRightAtk; + else + image = RenderableHolder.SPRight1; else image = RenderableHolder.SPRight2; break; case "left": - if (gameLogic.getCounter()/10%2==1) - image = RenderableHolder.SPLeft1; + if (gameLogic.getCounter()<20) + if(currentState == "attacking") + image = RenderableHolder.SPLeftAtk; + else + image = RenderableHolder.SPLeft1; else image = RenderableHolder.SPLeft2; @@ -47,6 +50,7 @@ public void draw(GraphicsContext gc) { @Override public void attack(Entity t) { // TODO Auto-generated method stub + Projectile projectile = new Projectile(worldX+solidArea.getX(), worldY+solidArea.getY(), angle,gameLogic); gameLogic.addNewProjectile(projectile); } @@ -55,10 +59,11 @@ public void attack(Entity t) { public void update() { // TODO Auto-generated method stub super.update(); - if (playerfound(768)) + if (playerfound(1000)) currentState = "attacking"; else currentState = "default"; + if(currentState == "attacking") { Player player = gameLogic.getPlayer(); angle = Math.atan2(player.worldY - worldY, player.worldX - worldX); double xDirection = Math.cos(Math.atan2(player.worldY-worldY,player.worldX-worldX)); @@ -67,24 +72,25 @@ public void update() { else direction = "right"; - if(cooldown==0) { + if(delay==0) { + attack(gameLogic.getPlayer()); - cooldown = 1*60; + delay = 1*60; } - cooldown--; + delay--; + } } @Override public void initSolidArea() { // TODO Auto-generated method stub solidArea = new Rectangle(16,24,32,40); - solidScreen = new Rectangle(screenX,screenY,8,8); } @Override public void initAttackBlock() { // TODO Auto-generated method stub - attackBlock = new Rectangle(16,24,32,40); + attackBlock = new Rectangle(0,0,0,0); } } \ No newline at end of file diff --git a/src/logic/game/GameLogic.java b/src/logic/game/GameLogic.java index 45b2fab..314a9b2 100644 --- a/src/logic/game/GameLogic.java +++ b/src/logic/game/GameLogic.java @@ -5,6 +5,7 @@ import MainMenu.GameOverButton; import Object.Projectile; +import application.Main; import drawing.GameScreen; import input.InputUtility; import javafx.event.ActionEvent; @@ -73,15 +74,15 @@ public void startNewGame() { map = new Map1(this); RenderableHolder.getInstance().add(map); - player = new Player(3400, 100, this); + player = new Player(384, 288, this); eQ = new EyeOfQwifot(3456, 512, this); - mT = new MagicalTortoise(3400, 200, this); + mT = new MagicalTortoise(200, 200, this); addNewObject(player); - addNewObject(new Chicknight(3400, 200, this)); -// addNewObject(mT); -// addNewObject(new GriszlyEye(3400, 200, this)); + addNewObject(new Chicknight(200, 200, this)); + addNewObject(mT); + addNewObject(new GriszlyEye(200, 200, this)); addNewObject(eQ); -// addNewObject(new ShadowPot(3400, 500, this)); + addNewObject(new ShadowPot(300, 500, this)); gameState = playState; System.out.println("New Game"); @@ -147,7 +148,7 @@ public void checkTile(Entity entity) { } public void update() { -// System.out.println(gameState); + System.out.println(gameState); if (!RenderableHolder.inGameSong.isPlaying()) { RenderableHolder.inGameSong.play(); } @@ -165,6 +166,10 @@ else if (gameState == pauseState) { startNewGame(); // reset(); } + else if ( InputUtility.getKeyPressed(KeyCode.M)) { + InputUtility.getKeyPressed().remove(KeyCode.M); + Main.GoToMenu(); + } } else if (gameState == npcState) { drawDialogueScreen(0); diff --git a/src/sharedObject/RenderableHolder.java b/src/sharedObject/RenderableHolder.java index af49d24..87d9cae 100644 --- a/src/sharedObject/RenderableHolder.java +++ b/src/sharedObject/RenderableHolder.java @@ -33,6 +33,8 @@ public class RenderableHolder { public static Image SPLeft1, SPLeft2, SPRight2, SPRight1, SPLeftAtk, SPRightAtk, ball; // EyeOfQwifot Sprite public static Image EQ1, EQ2, EQDead1, EQDead2; + //MoleDerKaiser + public static Image mole,moleDerKaiser; public static Image moonSprite; public static Image healthBar; //Song @@ -65,15 +67,31 @@ public static RenderableHolder getInstance() { } public static void loadResource() { + //player Sprite + loadPlayer(); + loadMapTile(); + loadChicknight(); + loadGriszlyEye(); + loadMagicalTortoise(); + loadShadowPot(); + loadEyeOfQwifot(); + loadMoleDerKaiser(); + // + //Game State + pauseOverlay = new Image(ClassLoader.getSystemResource("pause/PauseOverlay.png").toString()); + gameOverOverlay = new Image(ClassLoader.getSystemResource("pause/GameOver.png").toString()); + inGameSong = new AudioClip(ClassLoader.getSystemResource("IngameSong.wav").toString()); + // StatusBar + healthBar = new Image(ClassLoader.getSystemResource("health_power_bar.png").toString()); + + } + + public static void loadPlayer() { playerLeft = new Image(ClassLoader.getSystemResource("player/RabbiLeft.png").toString()); playerRight = new Image(ClassLoader.getSystemResource("player/Rabbi.png").toString()); playerRightAtk = new Image(ClassLoader.getSystemResource("player/RabbiRightAtk.png").toString()); - whiteTile = new Image(ClassLoader.getSystemResource("Tiles/WhiteTile.png").toString()); - grayTile = new Image(ClassLoader.getSystemResource("Tiles/GrayTile.png").toString()); - pathTile = new Image(ClassLoader.getSystemResource("Tiles/pathTile.png").toString()); - blackStarTile = new Image(ClassLoader.getSystemResource("Tiles/blackStarTile.png").toString()); - blackTile = new Image(ClassLoader.getSystemResource("Tiles/blackTile.png").toString()); - //MapTile + } + public static void loadMapTile() { ground1Tile = new Image(ClassLoader.getSystemResource("mapTile/ground1.png").toString()); ground2Tile = new Image(ClassLoader.getSystemResource("mapTile/ground2.png").toString()); ground3Tile = new Image(ClassLoader.getSystemResource("mapTile/ground3.png").toString()); @@ -90,7 +108,8 @@ public static void loadResource() { tombTile = new Image(ClassLoader.getSystemResource("mapTile/Tomb.png").toString()); spawn1Tile = new Image(ClassLoader.getSystemResource("mapTile/spawn1.png").toString()); spawn2Tile = new Image(ClassLoader.getSystemResource("mapTile/spawn2.png").toString()); - // Chicknight's Resource + } + public static void loadChicknight() { CKLeft = new Image(ClassLoader.getSystemResource("Chicknight/ChicknightLeft.png").toString()); CKLeftWalk1 = new Image(ClassLoader.getSystemResource("Chicknight/ChicknightLeftWalk1.png").toString()); CKLeftWalk2 = new Image(ClassLoader.getSystemResource("Chicknight/ChicknightLeftWalk2.png").toString()); @@ -99,19 +118,28 @@ public static void loadResource() { CKRightWalk1 = new Image(ClassLoader.getSystemResource("Chicknight/ChicknightRightWalk1.png").toString()); CKRightWalk2 = new Image(ClassLoader.getSystemResource("Chicknight/ChicknightRightWalk2.png").toString()); CKRightAtk = new Image(ClassLoader.getSystemResource("Chicknight/ChicknightRightAtk.png").toString()); - // GriszlyEye's Resource + } + public static void loadGriszlyEye() { GELeft = new Image(ClassLoader.getSystemResource("GriszlyEye/GriszlyEyeLeft.png").toString()); GELeftWalk = new Image(ClassLoader.getSystemResource("GriszlyEye/GriszlyEyeLeftWalk.png").toString()); GELeftWalk2 = new Image(ClassLoader.getSystemResource("GriszlyEye/GriszlyEyeLeftWalk2.png").toString()); GERight = new Image(ClassLoader.getSystemResource("GriszlyEye/GriszlyEyeRight.png").toString()); GERightWalk = new Image(ClassLoader.getSystemResource("GriszlyEye/GriszlyEyeRightWalk.png").toString()); GERightWalk2 = new Image(ClassLoader.getSystemResource("GriszlyEye/GriszlyEyeRightWalk2.png").toString()); - // MagicalTortoise + } + public static void loadMagicalTortoise() { MTLeft1 = new Image(ClassLoader.getSystemResource("MagicalTortoise/MagicalTortoiseLeft1.png").toString()); MTLeft2 = new Image(ClassLoader.getSystemResource("MagicalTortoise/MagicalTortoiseLeft2.png").toString()); MTRight1 = new Image(ClassLoader.getSystemResource("MagicalTortoise/MagicalTortoiseRight1.png").toString()); MTRight2 = new Image(ClassLoader.getSystemResource("MagicalTortoise/MagicalTortoiseRight2.png").toString()); - // ShadowPot + } + public static void loadEyeOfQwifot() { + EQ1 = new Image(ClassLoader.getSystemResource("EyeOfQwifot/EyeOfQwifot1.png").toString()); + EQ2 = new Image(ClassLoader.getSystemResource("EyeOfQwifot/EyeOfQwifot2.png").toString()); + EQDead1 = new Image(ClassLoader.getSystemResource("EyeOfQwifot/EyeOfQwifotDead1.png").toString()); + EQDead2 = new Image(ClassLoader.getSystemResource("EyeOfQwifot/EyeOfQwifotDead2.png").toString()); + } + public static void loadShadowPot() { SPLeft1 = new Image(ClassLoader.getSystemResource("ShadowPot/ShadowPotLeft1.png").toString()); SPLeft2 = new Image(ClassLoader.getSystemResource("ShadowPot/ShadowPotLeft2.png").toString()); SPLeftAtk = new Image(ClassLoader.getSystemResource("ShadowPot/ShadowPotLeftAtk.png").toString()); @@ -119,20 +147,11 @@ public static void loadResource() { SPRight2 = new Image(ClassLoader.getSystemResource("ShadowPot/ShadowPotRight2.png").toString()); SPRightAtk = new Image(ClassLoader.getSystemResource("ShadowPot/ShadowPotRightAtk.png").toString()); ball = new Image(ClassLoader.getSystemResource("ShadowPot/ball.png").toString()); - //Eye of Qwifot - EQ1 = new Image(ClassLoader.getSystemResource("EyeOfQwifot/EyeOfQwifot1.png").toString()); - EQ2 = new Image(ClassLoader.getSystemResource("EyeOfQwifot/EyeOfQwifot2.png").toString()); - EQDead1 = new Image(ClassLoader.getSystemResource("EyeOfQwifot/EyeOfQwifotDead1.png").toString()); - EQDead2 = new Image(ClassLoader.getSystemResource("EyeOfQwifot/EyeOfQwifotDead2.png").toString()); - //Game State - pauseOverlay = new Image(ClassLoader.getSystemResource("pause/PauseOverlay.png").toString()); - gameOverOverlay = new Image(ClassLoader.getSystemResource("pause/GameOver.png").toString()); - inGameSong = new AudioClip(ClassLoader.getSystemResource("IngameSong.wav").toString()); - // StatusBar - healthBar = new Image(ClassLoader.getSystemResource("health_power_bar.png").toString()); - } - + public static void loadMoleDerKaiser() { + mole = new Image(ClassLoader.getSystemResource("MoleDerKaiser/normalMole.png").toString()); + moleDerKaiser = new Image(ClassLoader.getSystemResource("MoleDerKaiser/moleDerKaiser.png").toString()); + } public void add(IRenderable entity) { System.out.println("add"); entities.add(entity);