From f5b809473af5474dde31eb8f1a77843f0d13f3c4 Mon Sep 17 00:00:00 2001 From: Chara1236 Date: Sun, 5 Jun 2022 17:33:24 -0400 Subject: [PATCH] Fixing Collisions, added level manager --- img/tiles/terrain/GrassMiddleLeft.png | Bin 0 -> 1092 bytes img/tiles/terrain/cornerBottomLeft.png | Bin 0 -> 963 bytes img/tiles/terrain/cornerBottomRight.png | Bin 0 -> 953 bytes img/tiles/terrain/cornerTopLeft.png | Bin 0 -> 937 bytes img/tiles/terrain/cornerTopRight.png | Bin 0 -> 942 bytes img/tiles/terrain/grassBottomLeft.png | Bin 0 -> 993 bytes img/tiles/terrain/grassBottomMiddle.png | Bin 0 -> 965 bytes img/tiles/terrain/grassBottomRight.png | Bin 0 -> 1002 bytes img/tiles/terrain/grassCenter.png | Bin 0 -> 844 bytes img/tiles/terrain/grassMiddleRight.png | Bin 0 -> 1083 bytes img/tiles/terrain/grassTopLeft.png | Bin 0 -> 1042 bytes img/tiles/terrain/grassTopRight.png | Bin 0 -> 1041 bytes saves/Level1.txt | 36 +++++++++---------- saves/Level2.txt | 18 ++++++++++ src/GamePanel.java | 7 ++-- src/LevelManager.java | 19 ++++++++++ src/MapReader.java | 45 ++++++++++++++++++----- src/NonPlayer.java | 46 ++++++++++++++++++++++-- src/Player.java | 26 +++++++------- 19 files changed, 152 insertions(+), 45 deletions(-) create mode 100644 img/tiles/terrain/GrassMiddleLeft.png create mode 100644 img/tiles/terrain/cornerBottomLeft.png create mode 100644 img/tiles/terrain/cornerBottomRight.png create mode 100644 img/tiles/terrain/cornerTopLeft.png create mode 100644 img/tiles/terrain/cornerTopRight.png create mode 100644 img/tiles/terrain/grassBottomLeft.png create mode 100644 img/tiles/terrain/grassBottomMiddle.png create mode 100644 img/tiles/terrain/grassBottomRight.png create mode 100644 img/tiles/terrain/grassCenter.png create mode 100644 img/tiles/terrain/grassMiddleRight.png create mode 100644 img/tiles/terrain/grassTopLeft.png create mode 100644 img/tiles/terrain/grassTopRight.png create mode 100644 saves/Level2.txt create mode 100644 src/LevelManager.java diff --git a/img/tiles/terrain/GrassMiddleLeft.png b/img/tiles/terrain/GrassMiddleLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..dd23cfedcdf8b60c8d4db97675c72a6db95ccf4e GIT binary patch literal 1092 zcmV-K1iSl*P)ZnhuWGiS~@Q&|6fO6fJ*IKjFW_D-r=^|Jc)@|jj?5>adlX^%Z9RF zzS&vaI31LuXNTaRgYWCz5q1=AoGz3=9MX18#WA69;TTZ@aL5TB7RQA`#c`qlaahhu zp*RqfI8I2=1fj%nD)(eh*HD}gl+d^kgc4h(O@y@`2kYKvXoQx=B9KfN|hl7TZMnU5QlrLR4=$bD! z(CU{FDLe(DL`$dtEHEaNpXFlbh4hPYqkwS`C@vgYUukYsHQQ&F|3Bcsp`dti2q-oj zd?(V@X3E>5>JdTp*V0@Vd5xB7>)wB4Tpqc z!C`}0stu`6^XLC`UCUX$&fXG9;;^6?a9CiHUy5FO+*NAYA;MurN#KxSOekOG$5iu4 zQMH~;i?vWCpRI97Fm{w1sqI;lD|lH(LBp6(8V@HjgMxywp>PCLv1x~+3|bWCeR)I# zMQqw3HgFiSiv`2z%c0R1!;K<=lbqj$;-F*9-txFuCd-9myEX*DLGMbdwPDrVnDMq{ zdou0dK!M_r@)#_R=(Ga>1%gA)d_!?CS8Y-;?cl=krRkK*S$#k4;KX@VvVQs;*ZKN> z+94E&^8#q!Pdh+yB(4ni{j`G*N2;@!ifIQQPFj1{e*tQbmjLm_Zz%u(04;PySaefw zW^{L9a%BKwc`jmXZ*OE|c`jped2n=ZE@^FHXJsx>PDe5{MQ&qnWMy)w27m4V0000< KMNUMnLSTYF;PG() literal 0 HcmV?d00001 diff --git a/img/tiles/terrain/cornerBottomLeft.png b/img/tiles/terrain/cornerBottomLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..de29d78fe6d800a1ca135031e1684a351225d62c GIT binary patch literal 963 zcmV;!13dhRP)TyOYa zp;CL{t>yX__M3`+o;(Y6tuLww6{f;em0S;+VtT-hUD^3xGi9;3?4NlyfgOcJ%E=?9nigWaY2XlG!ScD?Mk%CL_1rbWJ z;x`vz8WhFG92_+Y6Gw~EheIfo5{?;V0LO}w!yzO}4hM$PgM&ip;t(1o#et)AaL_0z z4tZ?+?*r~nbMHUP7iPk%!c-VXn8o3)&t487M^a}I z;|R)^B^=_W;V2wUVT*lf3Jcz)Jdvy@5*$k@bPz{@Qo^()NyF!TLK!RtjCm4;BKEaYygtYkz3MUt|p>T2$Ef;1DUPIpSi+&_U$2D}M_YX2;%JIb z+cm z7Y?!|(#3%eB_ud&FlZc)CR&T*GO4k|$-+1;HY2_IIhzUjJ$0KM-5}aah-M$Wcno>6HJTq?d&1@12n(d{FiA5D@j*DO=WiC)oM=~@;Zewp`Wpbznf9?PP002ovPDHLkV1nq6pceoD literal 0 HcmV?d00001 diff --git a/img/tiles/terrain/cornerBottomRight.png b/img/tiles/terrain/cornerBottomRight.png new file mode 100644 index 0000000000000000000000000000000000000000..e26e83deee33495ac7227861291fd9a5649b5e73 GIT binary patch literal 953 zcmV;q14jIbP)<2ua``utW%wOgICFX~rhqczWFKdi;gbnp${k z+26u;JxsqYUUe~c2L(dF1WdpLOuz(8zywUd1Wdp%#?AT5?&|&1Zhg9PS;+OtK^`7+ zr!}Xwr#(PndX%eokMls|B#?e?G)_jjom+xKQWP{!iGs%2LJ{JS1_gyvLqXwGQ3N=o zMX}sj6ebQ?P&7DcZVpO`BRMo#C?(F>3m(kP*>e$!1V;)kJr_hM#YlT@!ekW1 z#2g$o3KK_*GKE7ZlopN|Wd_HJQo|u6N(~2wGJ%6a8RHNdrNn`wjBwB>B@TH^{BHwK zmO1xk_`)oB1WdpCd(CC>We%B_T&=0>BGI8nQfqJF^qf0*l&!_MnWN(ZV}Cq-Iw zTDuEO`7}r4lvgksr@VqCp$KW?6%p3FYnAhm~#zVVi~&M>99~Tu@b23!EP1 z^|yPYZU&{rFM$=F5WtWq?7K zM8-JClE@gx10}R z>vjO3Ou}fAPuvY?zS>B-9mY{I491eKoWrqv&f;`Cpip*T5DD%n9K?6NR<{EZWeWyb z5*gzlKY-S{9ndHPj7OoX$MN_wTy{Hnpkx@Y>R-PB&u#|~ln=k}=dsw@b(y&KfcXRL zs1QCmMdXZ)9b1s0M%T00000NkvXXu0mjf7U`a} literal 0 HcmV?d00001 diff --git a/img/tiles/terrain/cornerTopLeft.png b/img/tiles/terrain/cornerTopLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..1cdd1e2acb47a6237b0a786310a673498f7e5960 GIT binary patch literal 937 zcmV;a16KTrP)5d&9Sr$HTAF{U!%_zyy@9?;i|551zCO1I8yT>>Kw z-aJm4I46SRM8~`26eCU0hQ!GwiZGl^K*+@*ZJ3Y1sb$Y*oJtD8!68dxXu;u>6x2A3 zq;n33EZMRaM^a}I;|R)^H5}q(nn)Z?VT-+K3Jc!j+ONNr1tUd~;8;qbvp5Qr8V(^) zI5^h&a23aZQoS~sk?u=zBqc^E4hMyUL#W~t7e`Zk z;_eF)l({w&LY6D%a4hA@IUEg2EfFPjfxCo*C~%i>Oeh5$^0*R7agbLcDGmfBgF{{& z2@{UTCEA1oMM-eT>t=EMfKNM3&K*ps-%}fIB0EeUIvB6kt~=T7AU$O~PJ(8;9n!c2 ziPLPiLn)F);56IqFqivSaGLFQ;AYF(jP@>cJJiZ)9b1s0M%T00000 LNkvXXu0mjfR~M9r literal 0 HcmV?d00001 diff --git a/img/tiles/terrain/cornerTopRight.png b/img/tiles/terrain/cornerTopRight.png new file mode 100644 index 0000000000000000000000000000000000000000..404530a85ff9144cea8c925f4623dc8a700ac818 GIT binary patch literal 942 zcmV;f15x~mP)-*W`;r;pDVfEtH!f-w=I7y);oFD%aGWk+)~g3D zIAJvpTkX3|C+FeO~BjZ(O^ALlTsWkI%-1#t9(P-n)WBQWP{!jDp4q=U%TKs&Ghyg2G9m zpm4(3!alzapQ><3i(7fIOKuy{{^1!{N6bnUzkQ#3TJ`I;4Cm19Fl!dU;BJaHxaHRB9?xv$FmD?NO}c( z+%$1c1jmW4cS#UPnxGAdlS&j}IEjFei$mHlAAwWKp3OLg6oP|8mc-D4!zn4KaTrNw z4Tr3y1PzX)&LYNPX5uxRBuq#XB!wXfj;6514*dlvwd9$sC=wh?DYS~CKq=u60)>Nv zD4u6=3@AAqLZOs!knNT&8~{oRhma^K9FGRw4Gs`xjzega80YF_->nrJ_C}+`INkNG zQEP!&U>spCk6sR5-=y$C^_rvzXAWm~fr&$NG){a4qjBOZSdxm6HeW&Eq=GgSPAa11 z;*ceYv*MJ(d@D|=EyTegYi6s(;UtDy98RyShC_&SUy37Xlu2!Hz@5W^^xtPVn2L+j@3cc93g_VTIqks6+iEyu&6am=+Cg&m0uG^yPuv&K{A$zmv;zmn@^ebqie!JqTK4VgID)&dVyuyp|kZDBGTr`J=Xnh0000j zbVXQnQ*UN;cVTj60AhJAVr*}3WMp|RV{&KQKGBibQV{c?-a;OG> Q?f?J)07*qoM6N<$f(ikm=l}o! literal 0 HcmV?d00001 diff --git a/img/tiles/terrain/grassBottomLeft.png b/img/tiles/terrain/grassBottomLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..44ce95b33034c9881bc5085613561da3c40a2d25 GIT binary patch literal 993 zcmV<710MW|P)>*8cd*9zr=4oKaa#R;c57Qk zMFK{nEIl})eoUN?FjLy0gBlnCQMY2H4eTGQA17p9CTEHG~y2TO-ShAArw z2_}p3d3>-mD8VpUlrOcDYNLL=G$=tZ{eTh#Q=cCYL1|50NkZaB{(4eX>yJj%M&qXJ zUrFO|qpVL}OoAIHLHWNn1}8ZAzF0cUj>3)8fr7*#9oJMG8wwYW6$ODqzTk!8_)w@g zUKAh>ORa>(fuNW;n4}3pF>&fQWUFf^4h99A7f>ih*bWiaeoP)t5DE|{6vc(Z-obO> zkWg}Ps32Ez{oi(czkd#lB6756j(5x{ z#sXtSxpx+g!j5CP5JGXtFf()eSy9+n1xF`TiA0^|jMmiEVn2YMT|7!Ug1K?bBN$VPh_p5r=TDI?ZCp6E z8!Z$^tQii$@m=$&IIbE9iX%Ec@!>!ULm$q!mzRT3AUEc<=T%u47Y?SyXv1mF4y#&o zw>8;=P&_yq<>B&xJWLiRWO``ge0XyvL9v~LC=?4$ilW!;3QUSa8L8@L^%|~gLJ*39 zvod00<>+L-+90*=}_3;HY@o`_rdR>JH#mPgV;Mh9vS35hlV!mZ)9b1s0M%T P00000NkvXXu0mjfdy}I& literal 0 HcmV?d00001 diff --git a/img/tiles/terrain/grassBottomMiddle.png b/img/tiles/terrain/grassBottomMiddle.png new file mode 100644 index 0000000000000000000000000000000000000000..7a32547729985c2f462b17e3afc5ae80cac37b89 GIT binary patch literal 965 zcmV;$13LVPP)5O+_+|3JMJMArbF3&aIuYO90cidN8_|8d$~0@phbzsp(xQf`%siP zU_pt(DWOE+6j2m7U`6rba423J7Db2y9ux}>=9ZvP9L=FALZLXTH)Sxpt2b0A8XPUS z_FPb*kib2&FfEE9u>{AABE+$x4B(#L^l6p9m$ z(!+^Hp*T<@@t+M`I+(fVQ5WU_N5UjbMVQ&j^*V>?UWKcvh_#1xyY?C|-4$HprlCDi zI1ahqHMba8ind6cQll7#Qz!_fIAAUFBXGFx*^R@r5E2~lG=?4=$&-Q^N6>VR;ehuk z!GfcCXHnxQo-a8ZkhbAbIF^Sk@u8`F@aFnN@S};I1!KMgE$V9 zAsmQ8;cz0yEekjSC?y<-L@D9a7|{L32}J4RKr{-)nLU|Q8=+$EXcUT*v+Eq{C(Pf6 z*;&5U)H;*!K&|zk6u4$wdleX3nn&Z%D>xd5Ucs7H1g!l^6i%sVi^3^Yv{D@KG;v-W zuFUu1aAP3}4t#qyadoyF&es=LT#X^O0WP;_R>l;EXae^?A8YzJ+NXpP&hrl^n!6i^ zn~j$jTqD&I4(7z%_ze>ZgM$`m0(UkKH5AAC_(XAV!I&2VH}LVzS=UIF;&dooeu`t7 zsuG+I1@l7pffi@#n*!j%C<=}DZ%?~Ms)*A^p*XHl^L)>^_YP$r492}rN1Lrj=gc3N zt{*R=bn))hNptQmYiH&tOM|)b+t%E;XWTo@2mKFNamG+QIAbUtoDxbA#)2b7vEWEi zEI30bgD@H#Es6$5i=x5dP*|8>H_B4GxM&m!4*t!PoBLtMP)1=m94`uo<3-_cBq$=7 z5>6CK2`37rgd;@}!%&=PlrGj^pK7BP$*K+D{t2c!uA001p?MObuGZ)S9NVRB^vVtFoNY;SL5WO*)Qa(Qrc nZ!T$VVP|D7P)Z)9b1s0M%T00000NkvXXu0mjfX1%E_ literal 0 HcmV?d00001 diff --git a/img/tiles/terrain/grassBottomRight.png b/img/tiles/terrain/grassBottomRight.png new file mode 100644 index 0000000000000000000000000000000000000000..b89bec343ab1f19f58014c906ce5d493bb961a82 GIT binary patch literal 1002 zcmVGf z2PQ??o4%d|H;x2Jug#4EK>@+!QMhqb6mFcQtB-R}>76ytWGp7Kegjg^@`Mf&#&TfZWI-V8zqm!jgo=!fzpYY8{V$H`T86?O7CDi#?GT*QbQ_e z7;3jJXc%rB6ijRWu9sw*CRE6YScT!l0mGzQu#cTa-GW_lzCF2`fss*PJ<(g3{Gp8# zM|Ws*#(8|D3kTYNLBp7i`5ZX5V}4mUPB2A%aO3*MAlwe_~C}^1d**n5lPLc_glBhXQP%!GzoEt~of-yK; zC}0>}y~2f~JG4P?I8i__wjz#-V>{-%;Bcd4V0IU)q{`NY^L6V#0@yj{DDLeb&)MCpR*;M8eT z0EuH7o5~-AK~ZshqiA7dOuaiUcAj5DFTUP5Wxc5!tNv>vStl3@P7w+Pr&lOe7z~ap z3I?Z_D1|T(94HC|r`IS>Fn@NGBjSB+m>tChrwkNl7#j{1#fDQB3J6Ar!-b;5DH8<@ zlj3|>8WD?)AukJRtX7gJ69onHzeI$IFcBugM3@K@VIoX~2^A)N5hEKB#t^>&*vwz( z0!%GO0000jbVXQnQ*UN;cVTj60AhJAVr*}3WMp|RV{&KQKGBibQ YV{c?-a;OG>?f?J)07*qoM6N<$g1ES>L;wH) literal 0 HcmV?d00001 diff --git a/img/tiles/terrain/grassCenter.png b/img/tiles/terrain/grassCenter.png new file mode 100644 index 0000000000000000000000000000000000000000..abe9429e1c13bbc4b0bea3f04750670fe2fffbc7 GIT binary patch literal 844 zcmV-S1GD^zP){g3@c+8#FoYtQ90EHP)w$E4nK;tBk zVQw@|k8+$_fwJgp!T4=O#>#qL`S2qefxkXi;i7ghFZIm{BHh ztSBWMLZXy#U?>$F6v`Nf&?q?$9A$)qM#*u=W8&WpT+egv@8JtG;}I|c;|Q}~-}xM- z#}}^TMJzq6`?Y((3|FwnO_Rq&aGdOVm)v5cd9)#MN`WE_r|=-;;*j>4kHBd~&t{xP z2*JT2OJHch;iMGQIEPH+GyB^*MclyE!>bU!#ilravWQF5I9 z+tRIsn&w8M#FCot6FaB5{!ID`oIr8trlqZCI{ zKy2ZVwM|2cqnVp~E~u)im9T=4>B=b_OS*Cj$5d)A;1D{&UBf{nxNA6&`uhlnJW3*C z9Arskj00^-$Z*K3BVoYtD54EGE}a@j9P+9x_8WLz%yRBz61D3n>IY18J4jpKqT8Wz zLrQM3%kFk4ys5Z2m)q^oc!hItF0wKs4Gm3-oEK=ajR*4+*q z9LwjdS$8|Ma1h`5X5H;j!a;rjJ!`jvN1ff+|=ytfU@dYY|c;M{K zWG?^!04;PySaefwW^{L9a%BKwc`jmXZ*OE|c`jped2n=ZE@^FHXJsx>PDe5{MQ&qn WWMy)w27m4V0000^{A!b}FagI8nefX3oKJqJcrK)a1cma-6co-?1C}3gF)d$34_4#hUwJqtG(r0s=Zd0`9UjFy(NLOzBMWXV^H?0H+l<=qe0BI zQ8=CTyXxEgMK2UDm^2C+Cy9c_dATztv-#RkP&ipAD4Y-!5=P`FNP@lq394?9#CKQE&6N*B`L7-&9a8X=1T$DT<6v_Y$ z3MC5%g<``&qV&O_QIa@llr#<+r4L2|+^7w;lT*5?+ce%1*xcExYfF- zVbC~1FzvNzks6G*K5(bIm4P%aAiIXOI1XFQ-JelZ&LE(78q=PmjPFB!H#(8`N zjzfmAh4}~^SD4Si*?4nO7A7w->ZcjpKyTX@XaM)dMG_ zu%-VebVClV`EpTwa5$yVT%7KA>wEZFon+x;!i1twa1h0FE6zU@^SM?xM@zO(g8E7* z6c-M%-7`zw(P=bRwq>DMZttz_TgQ zYqypr)z{f^C{E#f*Jibru0wI6fkER$1!HiUk4kKuz-foF+@9e%?OTc9314dLsn<9 zwK1(0>!bKniJC2k;7Ck6AW#Z7?Lfw1q7-u4ArGgQA}~=3JMCb@(SL7kmf0wUo_0v% zAW;fG?O<@wC~-_XbivUmQS`1QP?9iz0WyY{1{-YW9RL6TEp$a#bW?9;ba!ELWdLG% zE@EtNZ)9Y7E@N_eaCC1jX>DO=WiC)oM=~@;Zewp`Wpbznf9?PP002ovPDHLkV1l15 B@!kLc literal 0 HcmV?d00001 diff --git a/img/tiles/terrain/grassTopLeft.png b/img/tiles/terrain/grassTopLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..57eeab87a0d43c7fc034f4bb9eda19d042ee0558 GIT binary patch literal 1042 zcmV+t1nv8YP)wUbMhmZ-PxJ3jlZX}6#X%l5K3ScS|?H%kzf)`f=Mt5 zCcz|_1e0JAj7)6qjOQV-_R5zt+50zVs|TY%nhRI*K;tNsZ?(($+8?&gRR_jILF1Sx zI;c29g|VTaaBL_cI75T+p>T10C{&!Gz}Qe)PbTx=;@D7rJieCgJ)H`|890m!<#+vV z9yT0mUT~otJiC*x{cGt)-`by7E@rjwCx;7DhQh%qL(xIS85j%|B?gCz5`r@jm{61u zoKO@hjyQ}BMJ2*A6beo(3I#_L#)hI^hKl0*0=paMStvT%tG9Zez1oK(27^NJ;c!uW zI3h4;lrkI+iVFu0BZcC^L7>=hpfH?7+gZP#M+goX<@vp=+n5W&fx*OX$r|O)_M<$= zILp&yl*6ru`P$vaJQ)W9gF*?#2|>|8#bLvsQD8V0ln@*i3@6e0P}n#g6e>M=_NzTi>sHRqJ-v!5ELDUn-4HBHk5XKCVwIIVrUdHP6Ub%Cm2Q*a3;$B z>dpTT@ZfMzN^uw{E}W>plE&Fvn(BXm1qXrR!~vk#aH5m%?%PZ52N*a=ls+6FN)d;( zU4Pn{^x|}1;!%!pdTXOmOdR$B&xcdxfRqHIhyyDkM-2yh?a+KT!%C2LFqHxSD7>#3Y!6Bsx{01)+$98B#;n+^JR2-2zUn-98n9s#=)j(7nu`WRw4y7=R z#qps~al~L$Gptpg=2goPI205LjtGqI5Sj%h=kke~7eY|XwQVP8IE>jgEy8fFE6Z?V zP<(|b6sFiqHenDK+%6mziUS7*V{5SQuieJp`de@yC>9(Dj1A@I;shL}hyz6_;ILub zqZl(;=LH_+2uE;jg~Nj3&Zivbh=v(ulxP@hPN_|d3`!J?4Taj0MNK=zKQKGBibQV{c?-a;OG>?f?J) M07*qoM6N<$f|8TN`2YX_ literal 0 HcmV?d00001 diff --git a/img/tiles/terrain/grassTopRight.png b/img/tiles/terrain/grassTopRight.png new file mode 100644 index 0000000000000000000000000000000000000000..f1be1f775729f0e6e87e806b806651d5d958afb8 GIT binary patch literal 1041 zcmV+s1n&EZP)M6az=HVz8LpqNPF z#8CzT2Mm)$k;Ji~l#K&|$wHC9aiNrnlM7=**?lpgem}d(#<8I^pO1G_Hclo??bjLg zZShL#0{7z=CnCO9DBu)gAM!BI{OZUJR?!wt#yF><$M}MX$oCt=C;=++YDH_KD zLq~z&a8QcGNx<+?TsRUaMd8F?;3!A0XVk&VM<^U9%Hir%H)Rjx2nLQ)Rev_0s^g6( zV4S^$Nid3DTL+5c>ro!TU{Fk;I9QZHzyZS~Q6zC}C}rb-V6spoa9k)@9La&43zLV! z!GWNZh2w-dUVjX}a4ZfKJRbcS5Kd>R;+ zxx^egch>f{{Y8;YgySa57L#wm)2@4_|4N zIL^_Vs+YC9IGwd!C||e6d5>#f7hYzlC_@dyK^a;YE(#guaCKVwnn`+~at3wdV@3AZ zf%0lDjT3(aQ*boOT;puj||ZBDD@A7k=QCFpK>P}&X> zDB^7g%ne{rDCajE6fbQD2o41W({|vZcxyYja5yNCwnO{v3>(F3+rfq-f#PaANTH-) zd^8dajwFh$?I4NL2jc@Jegi(+4$>$?@!NI#T~!<<4)YK2==(Rf>yGjO001p?MObuG zZ)S9NVRB^vVtFoNY;SL5WO*)Qa(QrcZ!T$VVP|D7P)Z)9b1s0M%T00000 LNkvXXu0mjfpAX7` literal 0 HcmV?d00001 diff --git a/saves/Level1.txt b/saves/Level1.txt index 27d0633..ee931e3 100644 --- a/saves/Level1.txt +++ b/saves/Level1.txt @@ -1,18 +1,18 @@ -10000000 -01101101 -00000000 -00000000 -00010000 -00010000 -00010000 -00010100 -00000000 -00000000 -10000001 -0000000011000100000000000101010100110100 -0000000000000000000000000000000000000000000101000000111111111111111111111 -100000000000000000000000000000000000000000011000001000000000000000000000 -100000000000000000000000000000000000000000011000001000000000000000000000 -10000000000000000000010000bb00001000000000010000000000000000000000000 -10000000000000000000000000b000000000000000010000000000000011111111111111111 -2333333333333333333333333333333333333333333333341111111111 \ No newline at end of file +2wwwwwwwwwwwwwwwwe +sssssssssssssssssd +sssssssssssssssssd 1 +sssssssssssssssssd +sssssssssssssssssd +sssssssssssssssssd 1 1 1 1 1 +sssssssssssssssssd 1 +sssssssssssssssssd +sssssssssssssssssd +sssssssssssssssssd +sssssssssssssssssd qwe qwe +sssssssssssssssssd asd asd +sssssssssssssssssd 1 zxc zxc +sssssssssssssssssd +sssssssssssssssssd qwwwwwwwwe +sssssssssssssssssd qrsssssssstwe +sssssssssssssssssd qwwrssssssssssstwe qwe +ssssssssssssssssstwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwrsssssssssssssssstwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwrstwwwwww3 \ No newline at end of file diff --git a/saves/Level2.txt b/saves/Level2.txt new file mode 100644 index 0000000..982508d --- /dev/null +++ b/saves/Level2.txt @@ -0,0 +1,18 @@ +2wwwwwwwwwwwwwwwwe +sssssssssssssssssd +sssssssssssssssssd 1 +sssssssssssssssssd +sssssssssssssssssd +sssssssssssssssssd 1 1 1 1 1 +sssssssssssssssssd 1 +sssssssssssssssssd +sssssssssssssssssd +sssssssssssssssssd +sssssssssssssssssd qwe qwe +sssssssssssssssssd asd asd +sssssssssssssssssd bbb 1 zxc zxc +sssssssssssssssssdbbbbbbbbbbbbbbbbbbbbbbb +sssssssssssssssssd qwwwwwwwwe +sssssssssssssssssd qrsssssssstwe +sssssssssssssssssd bbb qwwrssssssssssstwe qwe +ssssssssssssssssstwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwrsssssssssssssssstwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwrstwwwwww3 \ No newline at end of file diff --git a/src/GamePanel.java b/src/GamePanel.java index 084429a..217436e 100644 --- a/src/GamePanel.java +++ b/src/GamePanel.java @@ -138,10 +138,8 @@ public class GamePanel extends JPanel implements Runnable, KeyListener{ for (Tile i : map) { i.update(); } - //force player to remain on screen - if (player.y <= 0) { - player.y = 0; - } + //force player to remain on screen (For the most part) + if (player.y >= GAME_HEIGHT - Player.PLAYER_HEIGHT) { player.y = GAME_HEIGHT - Player.PLAYER_HEIGHT; player.yVelocity = 0; @@ -165,6 +163,7 @@ public class GamePanel extends JPanel implements Runnable, KeyListener{ //run() method is what makes the game continue running without end. It calls other methods to move objects, check for collision, and update the screen public void run(){ + LevelManager.setLevel(1); try { MapReader.inputMap(map, "saves/Level1.txt"); } catch (IOException | SpriteException e) { diff --git a/src/LevelManager.java b/src/LevelManager.java new file mode 100644 index 0000000..664e934 --- /dev/null +++ b/src/LevelManager.java @@ -0,0 +1,19 @@ +public class LevelManager { + public static int level = 1; + public static int xSpawn = 0; + public static int ySpawn = 600; + + public static String filePath; + public static void setLevel(int level){ + LevelManager.level = level; + if(level == 1){ + xSpawn = 0; + ySpawn = 600; + filePath = "saves/Level1.txt"; + } else if(level == 2){ + xSpawn = 0; + ySpawn = 600; + filePath = "saves/Level2.txt"; + } + } +} diff --git a/src/MapReader.java b/src/MapReader.java index f5e503b..e76808f 100644 --- a/src/MapReader.java +++ b/src/MapReader.java @@ -6,27 +6,56 @@ public class MapReader { //Input game map /* 1: Normal Grass - 2: Left Grass - 3: Middle Grass - 4: Right Grass + 2: Left Grass: + 3: Right Grass: + Grass Tiling: + qwe + asd + zxc + !: Slime + Grass: */ public static void inputMap(ArrayList map, String filePath) throws IOException, SpriteException { - String file = FileManager.readFile(filePath); - int x = -GamePanel.WIDTH*Tile.length; + String file = FileManager.readFile(LevelManager.filePath); + int x = -GamePanel.GAME_WIDTH/2 + Tile.length; int y = 0; for(int i=0; itile.x&&x0){ + while(canUpdate(0,1)){ + y+=1; + } + isGrounded = true; + } else if(yVelocity<0){ + while(canUpdate(0,-1)){ + y-=1; + } + } + yVelocity = 0; + } + if(canUpdate(0, yVelocity)) { + y = y + (int) yVelocity; + x = x + (int) xVelocity; + } + if(!isGrounded) { + yVelocity += 0.3; + } capSpeed(); } diff --git a/src/Player.java b/src/Player.java index 5bef996..4888e4f 100644 --- a/src/Player.java +++ b/src/Player.java @@ -12,8 +12,8 @@ import java.io.IOException; public class Player extends GenericSprite { public final int SPEED = 5; - public static final int PLAYER_WIDTH = 72; - public static final int PLAYER_HEIGHT = 97; + public static final int PLAYER_WIDTH = 64; + public static final int PLAYER_HEIGHT = 94; public int lastXDirection, lastYDirection, lastFrame; public int upKey, downKey, rightKey, leftKey; @@ -72,11 +72,6 @@ public class Player extends GenericSprite { } private boolean collide(Tile tile, double x, double y){ -// if(tile.realX-x>PLAYER_WIDTH&&x-tile.realX0){ @@ -113,13 +111,14 @@ public class Player extends GenericSprite { GamePanel.camera.x+=updateAmount+1; } xVelocity = 0; - } if(!canUpdate(0, yVelocity)){ + } + if(!canUpdate(0, yVelocity)){ if(yVelocity>0){ while(canUpdate(0,1)){ y+=1; } isGrounded = true; - } else if(yVelocity>0){ + } else if(yVelocity<0){ while(canUpdate(0,-1)){ y-=1; } @@ -148,6 +147,9 @@ public class Player extends GenericSprite { xVelocity*=0.9; if(!isGrounded) { yVelocity += 0.3; + if(downPressed){ + yVelocity+=1; + } } capSpeed(); } @@ -155,13 +157,13 @@ public class Player extends GenericSprite { public int draw(Graphics g, int frame) { frame %= spriteArray[0][0].length; if (!upPressed && !downPressed && !leftPressed && !rightPressed) { - g.drawImage(spriteArray[lastXDirection][lastYDirection][0], x, y, null); + g.drawImage(spriteArray[lastXDirection][lastYDirection][0], x-6, y, null); return 0; } else { lastXDirection = (int)(Math.signum(xVelocity) + 1) / 2; lastYDirection = (int)(Math.signum(yVelocity) + 1) / 2; lastFrame = frame; - g.drawImage(spriteArray[lastXDirection][lastYDirection][frame], x, y, null); + g.drawImage(spriteArray[lastXDirection][lastYDirection][frame], x-6, y, null); return 1; } }