From bd0c49b3aeb1a6a2477d3c139c08617b33e12b1d Mon Sep 17 00:00:00 2001 From: Alan Youngblood Date: Wed, 3 Nov 2021 17:37:56 -0400 Subject: [PATCH] Collider debug boxes with SDL_Rect --- build/BeagleRescue | Bin 333360 -> 333456 bytes src/config/config.json | 2 +- src/config/credits.json | 2 +- src/ecs/ColliderComponent.h | 23 ++++++++++- src/ecs/Components.h | 1 + src/ecs/KeyboardController.h | 41 +++++++++++++++---- src/ecs/PlayerController.h | 77 +++++++++++++++++++++++++++++++++++ src/ecs/TransformComponent.h | 10 +++-- src/game/Game.cpp | 29 +++++++++---- src/game/Game.hpp | 1 + 10 files changed, 162 insertions(+), 24 deletions(-) create mode 100644 src/ecs/PlayerController.h diff --git a/build/BeagleRescue b/build/BeagleRescue index dd6712920f4902dde9ced6e03d0382d09ea6ee5e..6beaee17938dc949f33804929e769795f4424c4f 100755 GIT binary patch delta 82207 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%0DA&m?;|i8foZ@j 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

VT1{Iv1Fo@$tr- z0@G#Y_^RqB%mi29Ku%gmn(I0STqv6BB>tQxUC#*Lx-#?EE;9e2@F&4nhrZiFCU8$~ zU6)0_kIDLB!gsC0cD$dlcy;20**L(f87t{byo#Rn*h zMjx@Y7%}<=W6#Do3Iz%N-Du$>^1de`I?v6-VEVC z6@KG!)%%ngIVijm%VoAPCRXQkUMrc`mFM|5^QHBfPhl{!g`ahn37zlueym@t&Yi-L znku`1`jU;eAf`G`R=%e(R&rG1)0j|4OCei`mR}7v(p9BFEBc#P9`!L<#09&V?Dvh3t0t#kvW9s*f#(XJ@C)-nq90s~ z^-&6Sag%8|r@vaBc(M=IV{>lluO9EGIHZ=Jl^DAX;>>R*+i?z(_PL?bD+*8c! z3W$IL)o$i$q(!SxVe=LqQKTQ zydLv+`#;Jb5q_BJ@S9n4(8dic*1gp?gp;L+8{JzIgg+}4smqDm1k3$g54O`o+;<9P z{!O*@H?x^5=`xF77jai~bISF`5axAzrGuwZo|?squZsQx(SO%A(;O52+v#jaXSYfN zwqMxAGN4{PYx+jdm4)Jf7^QEKC=*p>gzHSK68> zSP!|eu9?UmrQdaudEJBG3THlUr5aOcCe+R;W;tlnl-zeUdptr3dSvn z$!t2W8HQd<0wS0{EImcnT4(Uf@EOw@)%+Yf*m>M$)1|wAi>90`|Eov&Rl*lEXI{HG zD}2du=5=XDV=AO<={ub&EH<))&)}I3ziZCLFh88@@33Ll>1y7?WX%zG5FV?kB_|t1SE*mZ5ir5*o zSw$CN6#p}v(_xTWSLV~~=UrK1;)QR3mZ5^2X~g=v0jCQ8u3B4Uc5-d{n#DTXCowE3 z*+LuNu{HCfo@0GIDNGUGIKccxao@EK>yLSfc|F=c6#nz)Ek5o+eO-Wn>gB9#Alr+f z5G)YHhsv?Ro5J4}{TXV*A2l&5mH5j#4+ zslsnN!*=V4{n^6%y=eKx5r7ExieQ?|#=1TJ68@b&oKfv~JOWlbbz=k1ik+pxKRQ70 zvJ5JQ^soKNb~qU-W4{O{c4xsZG4ygQCn%E%P?sQ0_%q7w5-QNXgq4ce%b(3*qOh*M z9oXDPIZ@E&vW54n&H95y|Dy2vEJiO2W*pmT)XP#->XPXjkj}M<0`fIol=7CT-Ip-h z!&a!9z!!%EuoJyZzlU0;N?Fv7c|Co8C;Y@D=FwTLD*&}j`VFKK_2mAJdgn6Uxbpw} zQS;9wuzGYd^SZ5H7d{4m#F?%X>tDPQEc~={Oki%bu9}_Lj(sgk6h7h?%TALA)Bi0I zWIo3R>WZPZo!QXpXH?u3%zDG`vOqV+-y$z*$Qjf1(XtDtOI^mi*54(3zHAqDeRS!{ z`r~C1NfrN-g&%z1BEpR}A~4V$sbbGQ%?>&W-wiyC;@+xuF_yW{Y#S=Ccyco~l-=mbZH4In(}(r+tez+OvRqb-)*B*NSc44(b2|LpA9m1F zHsX&7|Bdh)rK4%bH^5W*_P)k;bjS2eWIK!T$7tzFvHo@8het(_Eeo|?uZ{>GBD*Wi zk3$cj5)bEf#%Rsh>GnKFCp{{DvWjV`El zS5beN-USwKAf-B(=bb=I}+1y24|FBN(X(@aV|)f?zab+TR$2IF{tZsn&|ak?N$ ze;&NmIO|wZyC3r+^Al{{`hxKG1C8JTr2pVj<=4y(uGq6|RQH6am)PhM+uZfN@Vkz( zzFv6xC$WBiDTU6QOZeL|!Rxu@8hGssSyA6zH+=_RVGZ2w8gMkILBmwE1SLr-+CiU1$adEdb9tEsKSzCMT(=E&L`nkfV+vfAo zSJ+Pa8n&aeHCuR-cX0y@-AR5D!8(~n^mI`P6+sn~YwINM3IFa2cA&RQ<`6FTewB6; z?YXzBnsF2Dc{BXcd=x;9%yz!Od}}Gs(4m}s;4&tf2>%v%((k^2^>3RjxFLMTCFXw+ z{cY%9q#yp1#jB_PG8;EvEq8jlQok9-N?#7(#G3y{_!er;UuYu_>5IA!={L-&Y4cv^ zWDUh<3V8C_wioldjcy2kv~^o#0irth=J; zXm;@K4=Ug`x^}MZ4*a0V8?hr~hA-bVPM39$<86fx5kBrX`{^cpHhAi0XFq2`+c_lq z2ibo02Ri|J|BgytpibS!5o_*#w)dRaqgU$4UV9btw^_66OTCzn7V&wADfM32G3s93 zbS(2-zhiSLqEEkdPWtaQRg?e5$~swXfZ4%SrISaBTJ$(p3vI>8b?2HWe9Bf1w zS>Y$z21~@-Y-eYV3cq6}xLs6fcd#AlF4JyPNnUe2s|`@gAU0E9P}}a{%zV{M_VSph zm5Q3*Y33UV-~Sy>-uguqa2IXcU-tWYT50<(*I};BUT^SJ8RzS>J>BVM3V&E;PtE@$ zeE)mwSWhjj-eWtfyIFQzXfVD;h+tjBqXnUt#>jCyS?9C^_X*4wOZ^0hovy;Sk!4Kt zvxN_pZE9Uh-(?slMBvev9qRf)R1nW ze#E;Vus@#oT@qX?;tYK#B}+$U$&meyu39?tdEc71&>&ASQgof=qrwjjWly>-DotknqcY>^Dx}{_Cp+=B&Eaw3<(&YR(O8Oj zLj+UrGNJ1*b_yHP5A*d{N)mp#t%%|4e-;Wx=vZ>Si$0-hYq zP>sv*!oxh3R)z_4vb62%qV?BIwpy%~LEI(k3|E8hyL+%*CnNU5%3r`!buK;6c63+t zna%ti%r9=w9)K*No) z!1dlzHtQe7T6M+UpTg5GT+pR!!R<5FpL_mMcjJYRXvDl8lfQwdrlJ{(F5M#?*_Iub zVaiTbmq$TB2|PxyA>D>wa00`=&pHI29@{;5Ptf4&40y8Rg$bQ5-CVb_xd4NoA^R9^ zK_tZ$xr_yUzzPY&k3PKFFaXY{h@_ut06UU$SGHgG4S}6R#oPX2V8>5e$qeHc78v$7xQ69$MkhSaii1S|Q{m_IW+Gbn+rsY= zUiZXiUs6W(HE)~g?P>#xYCQ8eXGM$m3%|jW`9_k;e?9B}Blmx4!oLNc>R>b0db;!= z$`bu^vhfOIvGH%#cNzA_sLrq0L8`onqu0Tq!cR!x480>v zx$9wG(0#951d~JAf%rETY+yt76Xi?7+wZ8`Y-IiJt=UeVJLfcC_{zD=TfM{svQEma zvU|-TFQS`KOAH^t@~Tq6OyQSaV7{L4b+AB@en}1HbpiVeZ$G`;0^XVxhR_`YrL^xf z3rPd~a%ohl2;-LMd!@1`eRtL38-DX7_q1u{$xCuJ61?T9c{)PmNxu%SQ+^`6{jm6y z3aR2=({Vu?a6P%14a|}`I9y!3A^fy%oF%=utP{SVnE6D}ueycp*dKX(CVZg>>+7lY z81pWpq?|1@7DFH9v7u>QIDwvOt_%O|bFA22^k3M@`v30D#1P@93ICJq2z6`!OZZT0 ze4%?jCJBsfY$&KNJJt!3gin?2hc1EVcGmAdi1i1GomAoT1~cDPcmS0f4?~!>LmQ29qibC>b+F>ak9tO1!(at>lg78g$J)ej0W$b&T}fB z9V}-sI_=~H$7(U5t2$TsC2~?2A{iU9oek-#e(4C?u^)_o1)l6&!GQx^ zcNmNx!CUif(2$361Yx-ty8CcW!MDXqL4D=X_sH-fHh6OI=K!`mUL4Rj=)}`$6kW|2 zjIdwWPF|8*oJIMGz$Jn;YdAx?bGaSk1fj*uCyM?s@YcSg?s(C#zs5iJfyOF?=yoO$PaW`7yhbxvahT}07X2S(U)NOlk)m&ZU2zI{ zEKAWwww#W6NrKs8=%#H4Pzs)klCO^VyFcObD&YK$-_7~fQ_cs%U+BQR?x356?>dxu z-QVsBuRm3cW3l0Xg6&V2Ia}+$&wRM?S1-D=InpO-a?tK zw7u+;T%Vz~`~I)NQ@1-K4}7%#b>Tx~wbSKmb&Boyt>yd-l57nH4?8YnrxZjd_=*L_ zK~w-;{tU(;;iGI7Rr9oD=pHNTE#ce3k4oa2t0s1if~StcpP;^uV^0zME(vDI#-_9I zp1<-&rN8aCv<`TxiAAzAdRp|q6@JV$Cf*YMR~1ql75;BAmtyN*?>~VPG??otJ2^c* z?~6J6_CE%9)6h>ax}D<+v8Fr-=d!?9e3p6L5Dm|= zgY_~YX+x91TjRXPzeK~kDW|L}t}6Y`RlIUC^HQNkbMTbq7+coXkUpK5xNTEu0jQ&& zL~*PwtFeV_IBO{z)>BWi@S$rs2ceRYEb!!TUMlOS34c@gJ8PNOQ`?*8EPax7rLiy!Q&F9?6E58Kh5`>_jb$73DwF8q`R z+c!3dV4pO?3&Q&qaZS9wfQfFxM}emdU6aPtjeJn}xt0UG$H@MTg@3UAayjy`b_6u# zorS<^6W3p&@_|&MHrf6nXJN)N_N`~uZr~{k7i1Ho`_nw(ugOf4Cs}^+66+t7fr=q% zUAfFB8yjWrTP1l;zRU^MhcThM-8aJTyvqjKilK|bpZSUPb!)$UMT%JW0ELicV+|(> zm6Uh2Mi*x>`;45!He}Ohyd=DR7F#KN)=Jiwowre2Evt)T>AnnOEa>s`pX~n3LiQ`0 zEu#p$)w^utC8mV=aeuIJ-6G$B=QjI6G_p@wE<--2c<`3aPb@HeFq_fUn866X&W84kVFJ}=U9G@V(Qn8-*AU_7 z3g5wYO!KSo{Jt*+kk09VQa04RKbLrf7`i2VpAAgBCVbr+tiMibNcYm;g^wv@J9;*J z;U??%uE)I97F6ANA{h2OTlNzN*M;vcXD2bjH~EVVwd?VygOS4De~uN~i~c6%8;nEQ zLn1Dbw-b7aIQABsI~~I2bbZVgzVshf3>N)6Dh=jbo&U|rev@ZQJw-fLc;`Vj_nz=c zw^{%5E=>3e|AFwWx-qd*_}#)Mv|~GZ(RBaYvg0xa$ds?^cRU1iOz@&@^_|5DjQR4M zL3gNA!s}mJXd;gP65jqQZ|WT`K;I6Op*9tdZuW|xpG=ij!$KtjvkM(V^ps-=-LCQK zdpxCf>!LzJ-D^Iz8d}tU?I&U0_n5zlRhllH?GW(R(5;Pg4=ZKZV6LHhtZ3jb>A|q; zBN1PddI}eDz<)Sdy4)sc{%!CywOyBvFTKc^Df;(qtA3sPY^P)eyRRemKVaV9X#FcQ z;>Y*|0-ki%Nz(B$Hg(dI!s{QWct%WK7yjU@>`Kqq<>0Bw^G=$UrkCh@q03U89+x}l z0O5y%M-g4d^Q)NARhA|R=6=r(umD+C%Q84H>li10VFyARap1{;{Ux|8;dje+K|2mA zXZ<3p54!Mek62nKf@!is=_T-I@YERpWU`{}oL7XWzX4CzRtCcj|Iyw(-?n#e0iH5? zQ$}4Z>BGO#PXsYCZvP|!u4%##mLsX^OdB=b*ihFFTtkluKTPpkaDt~Tu*;u9(C9pqMMmQodw2;#hep288jb*r(wFwHcZ!u zgUT1!j?U11;fKUCKU@lyT8T6C+IiwpFS@h+4FS~zJpiGrnoPA-yg5OrttLJNPj}*m z94fTpWJZqYr^-~b^%e$)P2Kx;DBs3defCPa!apDN-^_>ooUhBgZu5@9k56HKkoaFF zy!~63R=#Yf+Gf_*^VC`9UB-K|5!DqESDh2=%;5xjrd=fbQkjo*hK>s#F@*J>l?-)% zob7b(&O~S7#|Y2ojjvZsU~3?tit6+_8)_&CwhLc(J`B1u^x^ll_?24SrkrNABB@uw4z-w?A!}E_^VSM7nhOj)S-69Y-h* zbbPHDs2@V)v)vi?skgvEHJP_RPJBlAZ)6dPWEaMV!rKoJE8#qV?CW3qqQ7EFS2%by zxOEc#v=y#qyg83$Pcj&tC2i}IOsp3^N%)&GQgz2E5q{lwT$V*ry_vN+4`H&G(Dhm+ zz~WuT=?!dI{2R|hK<(Wxjd|VC1`2;i2F!Pop?8HZR7_wlv#vSp0Kf0cgtoI;_*JIH&fL?QY;HL$S6RN)r9jW$Zxr{GUYs3+b3|iT$&pzwP0X5(r@(+_O?M z#r9!MJ>+_-K~3FjHh)FLdEMBLuE9OR2Vko}R}W5YT(y$9Zj0FdvkxsWbC5Uv!)JP` z?FOET`E@qiX(HzOi@yD3o&w<;pkve3QuMvCaKpaK`0aUSUJ*eD78pBQae{8buN3}_ z5PGIKAbfU1*4G37s_^pK_k*2%rFvYjh1Sf~zTy!_q6q9;roqB5`hgw1CmHG-jGC|p z=puxuuDqq{^@4U-`0Mh#Fj`Xf3}O9Iz1gDP3wqpDpN!NKG^XQy1 z8_9xfydw#6Fiq2??`jqZ?;ZE3po9D7pbBu)npt2t4(slXKW|qBz(fe1Xi1O@;5|$s6`DtC*Nf;DP_|s5wzs z4}H-IC}Z}g^F4$=Sit$x)6ps6$H-0oQ8sJL!E8YJnl_5{V;GDg;j`t&AX4veoak`Kp;$gCE$m(bu7Cu8Z zoll9I$VP0A?jPui7rv)D2Xn3;MZ8=(C^jC}<=>c-^(*9LxqkLP8Z-az!n5l>@K zS}Ec&aI9 zs@+I-Q-gO5#&g2Q$`YjaY_Ec++PJrh?O^7$u2amrj9TZJ=_T2o5XlKH$1*=y_yfYv z!h&vH0xvh?;d)YrYc#A1^ybtXXIn7seJ@9Xd zUB8Lg{t|Bw%&cU#rIVBC-jFVQ+7RY-J^m>C>g~+yAMctI&Gj2FgZU|v?RDT`-(~ca z8r0qDnJ3w?hx?-r773qXO;;7gtki<_GbKay#6hC)tzKq3y4>5rQ!kus4d&PJ2X!RD z&myq@rqVg^bW3K)VVS-Ix*-mtWiggblJVkGoS}6c*s<>Z3zb_-w8s(=XANZWAaP%) znnUdRTg1s%Sp0*Ccca;XTALd9 zH@vY>P|57)^G^xC?hm%0o5rmz>(?C2yw1?G!rR|woGiS(2XwE5zrIH$81*(A>MbSM zD+vnDGl6x=xPF}QPM}BSY1RB0^zy$Tr;_gYoD+mfx&|0CWG@ys zc641}Fy0hiKDT-B=x>+s&xsq|`^`AEzuLBs_X7|6F5}T}I_W3d*>U0t&WY|kqlF(X z_xgHcI#c-bzi|$Ar>)eH?PSR=?=d!KG!cGd0O_Nb>D^qK2%<2((e%LXKZLq1iF3Bz@vRL;hzXbMw`waWntM&}x?LXr4i%Nqz*Y6?@Kf%fL zp6AU@Y|efnpD%pwHrCfihV60ZM;*$3Ox_PXl|JY*)*mjV%wc_(F{+3KdN%y9P)ffz(3{}czUhnnBh<{iopI>?Fr%S$5MX^ z-~9+1(l?0izZ047Dsz*bHWR?BjJEi;WVmSP9}d@pa*CSN7JX#C zh~p*aZN%_);rCr;haU?65;l%hGn3CTuWRgyp3K{8vYqh9Ut)dTbw6g_W!#HofzG*K zFE(U<%G6JI`{C_6@YHvLud*F|tGG?{?K|MsxYgA20FHF%TZe8Ig?k+7#}QK2rQoTo zVJq0Q9<6PkXFldM^ST=!5&pJ}AAN$-s1NI(Sw`%INQ8ZUC?=->XYEqoR5RHorFU1|R{n0Fax?y;us0B=cx z$+q=luQ+&ZD(ma{?ULyK?8cRuA&%b|z>W`AVqT_wBNx2Rg!J7TqPpietLhV%B#bx8 z`?V&_>jqpPy!|D%uffv>J>T}sWQXY6KcTwEybEu^v4dTb_p~H-Z0{iZ!BY=>qc1D! zj&nlv-$Ku#>lGFoEna3jIdDXmp0ZyNew;NEVvg0@p07pV703zXz{GG%W<&O$u~fp} zD`b6ruSq|HO*OZsoO7aQtOdf$FaPih!Cug*k%E$0$6qrLqNMhLeoOf3U$ZN{EWL?Y zoAm9sU3uWCuIzhQV=(LAzsp%`&tNnMkA9)HbaeM^{;Vjid5oQXE<=5Z@E${$*X7!; zHgt5aS+~ftfsegEXQR4W{jo4`>B14B+-`Pf1A01C!iV;LH0AfgJL<5$$zZ&XMVRc^ zZ*Hy&zZCa`bfsAT;@AI?VU*4~egD`BS2I44p`sft2Rxn6<=^MDK9Y79c=DCioe2S> zNbDS5!~CWrk@w2in4##G-){V z`p=~3xp5wNdZc;h0Cz8aLtk8pkMm+?a=~;r%7H$0>EEYQO(UB!ry2*;h6Gf|De+VM z)uZX2eVzT=fA#ov;dhlpArsQbFy=A6TZo5%TEbrA{e-t4 zIj$Cdd>%W{HPQVIwv+Jz^Jf^0dBQ*P7>34$IhvR1%eMD_!@yhPbt6}S9&B_4mzn#XgzWtZ$zY^YlqI-mS zmvLVl>l#mZlMQw4z?St`QQ)a-Zdt||ndr{AO7!iAW&UH?j{QMglJFO;l?>~fZqaQb z7?;D2_3dWZTkLq(+sx|ONfgR|v-J1nQpp3Z{V(3-j?XSS>7k)q=R@50S5#IhF zuEuySKp$(2J~SkfMX*qA({x4U3LjdNGpbwqitvl9JwnB^gZOvYf&HtiAHY)$HIuzb zEai6?{y!-R>>p%jcypD8f5MJCQvzJ?yvq*ae_~$GK0fa;-}86obxo`X&x`A~qLCxR zSC1C=37pc;>Qsg?h#eWp;3>=Dn2zY`FMOKl+n*ck7XH6pZ+zdf@50Y1upwQyGg$Cn zzt4DI_;ksrE=sG3oYA{7U+R1Eb;8?E4!vDe0DaMYSZ#k$)Zx8)b5``N+y~0H2gbuP z5!*lS@k-}pV`X=xmz+u9sfspbvpIcRcS7{-CxK5+Vmr+273pwlhsL5?Ic-jOyYUxn(5QL~ax3EX2OFz4NS9rfY%`9`8YN}YQSP2v(U z&rB6F`##|hVuq({K5vGMkm+pB{+9a-!rNcgTOhpsCH`XO{f#mx)} zX}^OXA^c7`*VYrtufn&I(V|;FaV9s_QpoAjCr__}C;PjkcSTxK!?f{ZsVDnOyErTfS0+pHRq^RhhjR>EL;~ zKP(#d6)pH9w)jFkC(*O(JHi)kW`2=a49a4Czb;JZwSAHB_Mhg@VLsX5H-jsVzFVP# zQ8VXDchTKqjPSdI*n#H17T)}l`PP!5ALr^K<|9NFC$@Vu<>T|1xBtB9i^AIrN3opB*PgGOs6#cZ84c&4%hT7@rAm|5e0m z!Y`Go3KspO1#Exvc_JRG*br|}bNb-n`u7a^7Pzj7_L@_ie5_dUSjblFKdRkC_)TAP z?)B=l89Y_bW{eTKT<&bBO!Vb1Ng5t9H3cfmzRS3r%ZjZTjJ7QJuNR_+3;&FaF}6p*|F5iT4QV=x;+yU-IViXFF#0gp3Q0m|wB95rzBV#&MoB1X zwpyBEYG@$L=m8PLH0-W-QJK9nu?h7d)A}-!46;59lj?&6(u<(SsoqKohxp((M%wjwYzC}Y}t&?oas(^qVxcO(Kk_{T*0_r&tDQ8HKy`MamWBP}} zycH%<`j~t;lgQHExU*DDJw?dIxH{EbD)xi8f;J|r3(Ge^*ALzCxk-)mrk!zJgm5c+ zV>l1|*g^2x@e`D6d_$xJ=2*_Sx}|j?;P`%qx&NNY{LRe&WF={m-K8zGA#*+jM@%MUwxajZAW|WiG%$zF+qxj|#{bxJ!f? z^Dyrjk6T9kGL}Z+F&Y}&!9KwXelb7qHa@kQXZ0m=jFt>SjLEuR&xDEZBtfR9UohVC zh!mHxf+G-%_=eQ%W4GukhW@}~Caal#%M~i7{zs*m@xe)w&+h2LjHfzDy$qs_&~%}C zYh*h9aaQzw_;u<@UDvrlWDyleVLwI~S2NO%tE9k}O#C+HcQLNEoj3qOgA5tS4@0vo zE)W3%enSo1OO=&z9B|D0zfX~ZrFc_@Z1?ETRh_e z11w06PJS}3PCkj-@J&aXl~MSFrm26A`pS5xl}wYhJ{?>`et8IT3A?x%aGY}pC;&ljx;n!~)7^WgGcEQSyc*vJ=oj}vB-=7&;XwcZ delta 80810 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 +#include "../game/Vector2D.h" class ColliderComponent : public Component { + public: + SDL_Rect collider; std::string tag; @@ -28,9 +31,16 @@ public: int offsetY = 0; bool hidden = true; + + Vector2D center; TransformComponent* transform; + ColliderComponent() + { + center.Zero(); + } + ColliderComponent(std::string t) { tag = t; @@ -43,6 +53,8 @@ public: collider.y = ypos; collider.w = collider.h = size*scale; setTex(texture); + center.x = collider.x+collider.w/2; + center.y = collider.y+collider.h/2; } ColliderComponent(std::string t, int width, int height, bool hasOffset, int oX, int oY, std::string texture) @@ -53,6 +65,8 @@ public: offsetX = oX; offsetY = oY; setTex(texture); + center.x = collider.x+collider.w/2; + center.y = collider.y+collider.h/2; } void init() override @@ -78,6 +92,10 @@ public: } destR.x = collider.x - Game::camera.x; destR.y = collider.y - Game::camera.y; + center.x = collider.x+collider.w/2; + center.y = collider.y+collider.h/2; +// collider.x = transform->position.x; +// collider.y = transform->position.y; } void draw() override @@ -88,7 +106,10 @@ public: // } if(hidden == false) { - TextureManager::Draw(tex, srcR,destR,SDL_FLIP_NONE); +// TextureManager::Draw(tex, srcR,destR,SDL_FLIP_NONE); + SDL_SetRenderDrawColor(Game::renderer,255,0,255,134); + SDL_RenderDrawRect(Game::renderer, &destR); +// SDL_RenderDrawPoint(Game::renderer, center.x, center.y); } } diff --git a/src/ecs/Components.h b/src/ecs/Components.h index 3e875f6..dbbcb67 100644 --- a/src/ecs/Components.h +++ b/src/ecs/Components.h @@ -13,6 +13,7 @@ #include "SpriteComponent.h" #include "KeyboardController.h" #include "ColliderComponent.h" +#include "PlayerController.h" #include "ProjectileComponent.h" #include "TileComponent.h" #include "UIFontComponent.h" diff --git a/src/ecs/KeyboardController.h b/src/ecs/KeyboardController.h index ee59dcb..6baa65a 100644 --- a/src/ecs/KeyboardController.h +++ b/src/ecs/KeyboardController.h @@ -11,7 +11,10 @@ #include "../game/Game.hpp" #include "ECS.h" #include "Components.h" +#include "PlayerController.h" #include "../assetmgr/AssetManager.h" +#include "ColliderComponent.h" +// #include "../game/Vector2D.h" class KeyboardController : public Component { @@ -19,13 +22,17 @@ public: TransformComponent *transform; SpriteComponent *sprite; - + PlayerController *playerCtrl; + ColliderComponent *collider; + Game *game; void init() override { transform = &entity->getComponent(); sprite = &entity->getComponent(); +// collider = &entity->getComponent(); +// playerCtrl = &entity->getComponent(); } void update() override @@ -40,6 +47,14 @@ public: break; case SDLK_LEFT: if(Game::gsm->currentState == GameStateManager::ST_COREGAME){ +// if (playerCtrl == NULL){ +// printf("No player controller found\n"); +// } else { +// printf("playerctrl.lastsafepos .x: %g .y: %g \n",playerCtrl->lastSafePosition.x,playerCtrl->lastSafePosition.y); +// playerCtrl->lastSafePosition.x = transform->position.x; +// } +// transform->lastSafePos = Vector2D(transform->position.x,transform->position.y); +// printf("lastSafePos .x: %g .y: %g \n",transform->lastSafePos.x,transform->lastSafePos.y); transform->velocity.x = -1; if(Game::playerIsGrounded){ sprite->Play("Walk"); @@ -49,6 +64,13 @@ public: break; case SDLK_RIGHT: if(Game::gsm->currentState == GameStateManager::ST_COREGAME){ +// &entity->getComponent().setLastSafePos(Vector2D(transform->position.x,transform->position.y)); +// playerCtrl->lastSafePosition.x = transform->position.x; +// transform->lastSafePos = Vector2D(transform->position.x,transform->position.y); +// ========= +// Do a pre-check for tile-based smooth algorithm +// ========= +// int intersectionTileX = collider->center.x; transform->velocity.x = 1; if(Game::playerIsGrounded){ sprite->Play("Walk"); @@ -63,14 +85,17 @@ public: {Game::debugCollisionBoxes = false; } break; case SDLK_j: - if(Game::gsm->currentState == GameStateManager::ST_COREGAME){ - if (Mix_PlayChannel(-1, Game::assets->GetSoundClip("bwoop"),0) == 0) - { - Mix_PlayChannel(-1, Game::assets->GetSoundClip("bwoop"),0); + if(Game::playerIsGrounded){ + if(Game::gsm->currentState == GameStateManager::ST_COREGAME){ + if (Mix_PlayChannel(-1, Game::assets->GetSoundClip("bwoop"),0) == 0) + { + Mix_PlayChannel(-1, Game::assets->GetSoundClip("bwoop"),0); + } + transform->lastSafePos = Vector2D(transform->position.x,transform->position.y); + Game::gravityOnPlayer = true; + sprite->Play("Jump"); + transform->velocity.y = -2; } - Game::gravityOnPlayer = true; - sprite->Play("Jump"); - transform->velocity.y = -2; } break; case SDLK_u: diff --git a/src/ecs/PlayerController.h b/src/ecs/PlayerController.h new file mode 100644 index 0000000..1ea0a0c --- /dev/null +++ b/src/ecs/PlayerController.h @@ -0,0 +1,77 @@ +/* + * PlayerController.h + * + * Created on: Aug 27, 2021 + * Author: ayoungblood + */ + +#ifndef SRC_ECS_PlayerController_H_ +#define SRC_ECS_PlayerController_H_ + +#include "Components.h" +#include "../game/Vector2D.h" + +class PlayerController : public Component +{ + +public: + + Vector2D lastSafePosition; + float jumpTime; + float jumpForce; + + bool isJumping; + bool isGrounded; + + PlayerController() + { + jumpTime = 0.0f; + jumpForce = 0.0f; + + bool isJumping = false; + bool isGrounded = false; + + lastSafePosition = Vector2D(); + } + + PlayerController(float jumpT, float jumpF, bool jumping, bool grounded, Vector2D lastPos) + { + jumpTime = jumpT; + jumpForce = jumpF; + + bool isJumping = jumping; + bool isGrounded = grounded; + + lastSafePosition = lastPos; + } + + ~PlayerController() + { + + } + + void init() override + { + lastSafePosition.Zero(); + } + + void update() override + { + + } + + void setLastSafePos(Vector2D prevSafePos) + { + lastSafePosition = prevSafePos; + } + +// void init() override +// { +// +// } + +}; + + +#endif /* SRC_ECS_PlayerController_H_ */ + diff --git a/src/ecs/TransformComponent.h b/src/ecs/TransformComponent.h index 1348593..4bc80a2 100644 --- a/src/ecs/TransformComponent.h +++ b/src/ecs/TransformComponent.h @@ -18,6 +18,7 @@ public: Vector2D position; Vector2D velocity; + Vector2D lastSafePos; int height = 40; int width = 30; @@ -37,10 +38,10 @@ public: speed = speed*sc; } - TransformComponent(float x, float y) - { - position.Zero(); - } +// TransformComponent(float x, float y) +// { +// position.Zero(); +// } TransformComponent(int x, int y, int w, int h, int sc) { @@ -55,6 +56,7 @@ public: void init() override { velocity.Zero(); + lastSafePos.Zero(); } void update() override { diff --git a/src/game/Game.cpp b/src/game/Game.cpp index 55c4efa..bc06185 100644 --- a/src/game/Game.cpp +++ b/src/game/Game.cpp @@ -55,6 +55,8 @@ auto& uiInfo(manager.addEntity()); bool Game::debugCollisionBoxes = false; bool Game::gravityOnPlayer = true; bool Game::playerIsGrounded = false; +bool Game::playerIsJumping = false; + int gScale = 0; @@ -154,11 +156,12 @@ void Game::init(const char *title, int width, int height, bool fullscreen, int g map->LoadMap("assets/maps/br-map-color.txt",70,45, globalScale); - player.addComponent(860*globalScale,540*globalScale,22,42,globalScale); -// player.addComponent(150*globalScale,80*globalScale,40,40,globalScale); + player.addComponent(860*globalScale,640*globalScale,22,42,globalScale); player.addComponent("player", SpriteComponent::spriteAnimation, "assets/textures/actors/firefighter.json"); + +// player.addComponent(0.0,0.0,false,false,Vector2D().Zero()); + player.addComponent("player",16*globalScale,32*globalScale, true, 2*globalScale,10*globalScale, "collider"); player.addComponent(); - player.addComponent("player",8*globalScale,8*globalScale, true, 7*globalScale,34*globalScale, "collider"); player.addGroup(groupPlayers); puppy.addComponent(1024*globalScale,210*globalScale,36,30,globalScale); @@ -224,7 +227,6 @@ void Game::update() // const char* gameOverText = "Game Over"; // } - if (Mix_PlayingMusic() == 0 && gsm->currentState == GameStateManager::ST_COREGAME) { // std::cout << "Play Music Now" << std::endl; @@ -261,17 +263,17 @@ void Game::update() printDebug(std::to_string(playerCol.x)); printDebug(std::to_string(playerCol.y)); printDebug(std::to_string(playerCol.w)); - printDebug(std::to_string(playerCol.h)); - printDebug("playerTransform x,y,w,h"); + printDebug(std::to_string(playerCol.h));*/ +/* printDebug("playerTransform x,y,w,h"); printDebug(std::to_string(player.getComponent().position.x)); printDebug(std::to_string(player.getComponent().position.y)); printDebug(std::to_string(player.getComponent().width)); - printDebug(std::to_string(player.getComponent().height));*/ + printDebug(std::to_string(player.getComponent().height)); */ player.getComponent().Play("Idle"); } - - gravityOnPlayer = false; playerIsGrounded = true; +// player.getComponent().position.y = player.getComponent().lastSafePos.y; + gravityOnPlayer = false; } } @@ -364,6 +366,15 @@ void Game::render() } } +// SDL_Rect myBox; +// myBox = SDL_Rect(); +// myBox.w = 32*gScale; +// myBox.h = 32*gScale; +// myBox.x = 0*gScale; +// myBox.y = 0*gScale; +// +// SDL_SetRenderDrawColor(renderer, 255,0,255,134); +// SDL_RenderDrawRect(renderer, &myBox); SDL_RenderPresent(renderer); } diff --git a/src/game/Game.hpp b/src/game/Game.hpp index 9c7c1b8..1c6372a 100644 --- a/src/game/Game.hpp +++ b/src/game/Game.hpp @@ -41,6 +41,7 @@ public: static bool debugCollisionBoxes; static bool gravityOnPlayer; static bool playerIsGrounded; + static bool playerIsJumping; static SDL_Rect camera; static AssetManager* assets; static GameStateManager* gsm;