From 8ba4e500aa1fb1cb0aa5425b3cf0da1e7c2d281a Mon Sep 17 00:00:00 2001 From: jdm13003 Date: Fri, 15 Apr 2016 14:29:08 -0400 Subject: [PATCH] Added Laser, Controller, KeyboardInput. This allows the player to move around, the laser should also be showing up and moving towards the bottom right but it does not even show up for some reason. My battery is dying so I am uploading this but I will fix the laser later --- .settings/org.eclipse.jdt.core.prefs | 10 +++---- resources/sprite_sheet.png | Bin 1903 -> 55643 bytes src/main/Controller.java | 38 +++++++++++++++++++++++++ src/main/Game.java | 38 +++++++++++++++++++++++-- src/main/KeyboardInput.java | 25 +++++++++++++++++ src/main/Laser.java | 30 ++++++++++++++++++++ src/main/Player.java | 40 +++++++++++++++++++++++++-- 7 files changed, 172 insertions(+), 9 deletions(-) create mode 100644 src/main/Controller.java create mode 100644 src/main/KeyboardInput.java create mode 100644 src/main/Laser.java diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index 1b48017..060c5ee 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -1,11 +1,11 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.3 +org.eclipse.jdt.core.compiler.compliance=1.5 org.eclipse.jdt.core.compiler.debug.lineNumber=generate org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=ignore -org.eclipse.jdt.core.compiler.problem.enumIdentifier=ignore -org.eclipse.jdt.core.compiler.source=1.3 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/resources/sprite_sheet.png b/resources/sprite_sheet.png index c5ee5a31b671556d96c1447ccf745e13bc760486..ca98fcad3e62fd52819eb58cf5720b411aeee163 100644 GIT binary patch literal 55643 zcmXVX1yCJL)AinqyGw$*J3)dw1cJM}1$XD-?(P=cArM@G1}6~Q-95PcJn#2!)$HtU zRqyQ7cF*ZKb0$JjUJ3>ABO(9*C^FLG$^Za*zXSpBufmH=Ze?Qz0MbJ_sqU((^SEJ?o$g)*MGT9Hy+ydE7}wGNIFo|X+?LY2{8axSW-s^jkJ>S?>m{K{@n;`mBq+I@01yzdA%qT)Q0QcxiTk9cHFDAo6f;dEd1TeF6^B0gS9h-Vclzc;P%$vhmE#lac8k(-_V1sm!}* zMKDGqc#RTJ1fLiiiqaR$`J2NBcuN~q7LCtvE}P}Zr24~a!;v^zvl%hgG3zBGSyLFc zxVIKmQ8}OhY#AFo2h9j_E)2E^63iX)tzBS48o|JEMT2p}6sbSWNk(>Z(-{jB#)T-A zd3AOvQ{-;PwAcX}+y_uIWc;?6(fgx3lhHv4;GREgv2QK?k&tNSY-;|&$;rX~Qla?f zdTsw@Wm&@O!+om-di7h>Y3=i$kAUG=gmvR}6jKc%WP%A8UVSp2;Q=7u%j}8fyW7yd z^0P#MMcQKO9o5xSG1B_jG4XEDUKGN*3u?P8CY62ppQd!Xj^VMzo>lthopqBms??IE^U@qbRc%gek+>wEn^(25)J z=N?1RBpNd7N-ykp3P+2GK|1|3p!Zf}-*wMQ>gTyhpA_Z%cFz4`(ObMl6_j=qI)XYBt~7Kx1g$}scmWzw zglz%g7GkXk_fdqy5@tw*h6iRMNOt363&<|$$q-u(Vqu8e0gHqVZA8W{9X7v6s=XHOA#F#VL%iC9Su{|bIQC7pFXIfz^m-TBk^a1oUj_n1d9Kap06Cp?&L=IFd07(en#`VRgdoF%Np`d+q2s*~c!bp5_ zAS;Qs1i>9@_Q)|(dnJ5q7zwElg*HmLWs2BHO|VVGYJnA! zM3S!gUP|0bCS_W)Qk);E!{?-y^E;<74xn9d+tBp_>_mSSu@u@D(M;8{;Ul9I#nk`u zFeYb{NpDKW921ly*dsJY=ZMYdGp@hV^sOSABN^>StP5G7KT$f-Ize{>Kfy}%mv4+Y zoVCyrqNT-E_7L^v^rCE1J0f||bx^Otp2t~iJ6{yvOZsrXe)a=*3&&GiVx7Q~1ylZ_ z7NsgkaY(p;TqH_UR$x>|1c);`Qq(7UM0;fLNczYok{u@KN>5XgS-~Bm9}*riA5vw= z&5`pZ77c^1P@Om)zz-M?G0+mfq<_fMN`Kk#TA=tuYPRLHK=~ z$f4{($3%xmS2F8W{;@nsnL^q554M$xmH(mYA?6{)AC2#&rgiMv>~`!n8Q_c{c0AKT zI(UhkEm0#SE|rh(hFGe|YFS4TUkhewh#igWVzFwXC$->a$KGzw|%NeZd!RO@tailE~B zQuMO;;yQ!P!e3*`N6O2^RmBpraV(vs@C-+Euyi$Q{ACNZJf+{Ob_$YfREu3itRyo^ zPRg>s>(=;4dTNIh8rS|(qtoE6yh>)4buTQPVmR!)(NdF8Q&20g?mU7V1!gvDmuYut zXDx}j27VS3(C^gkl=4*9npoIJ?Zb{$u&Z zokM^lRV!wZ$+@Am{Q>rx`5JHZCe1PR)WB^h(0J3L{%_&XR#0&Y)q2BUr=>4_^m7$+ z*1;lX(5zqZ)2gTECgupL6tudV>VIG?5dM4^pPS-ZybV8{bvoV6-i;X@I-Na9cl+m7 zbnEh@`2=-agj#_r7X}+P6nhkFGekWkL!(zpSz07Nne#RKVd8Y+nwg9FSa+h8yoR_& zq6W&2-LAmyuU*{A-xaJCofQiKM*cak>}zrFM~|~B!b{~VW6w|C<6b(Rwby6=$R41d zRG;{7|6cDtxjpszt@*XT5LZp<_UcR@qCIy$yFUpbPoZjJU6_zkvy#?PU&zE;De5a4 zuu}0*-%DQ{qwmN6iGM2iT<~ium-TnuLET>6gTwqq!^JfGcDO6XJUI?|Yl5EALRno| zNm*-(9m8E!c6f6*b2PDjaVNd^-;}?Il`86au?f*egW2H{L!m>&5x$c*7F?|RTOC{0 z+vZx#Rh?B9Hd1c9-kBytblY-+%L8cx3RDYJC-Uj?F49%f*_&++m8~p^{7FZNdr2=z zXjJ}R5EQIr2Z{$va(8}TBzksQjaV&O1sy&fh8z}svza^5;uyW#WhmN3*!xV8veR{ zTjiSNI%^I%-CM3~_GdK4(_`YItD*HX_(k9P7<0&-vhK5l(QT4H+u-shKPJC6v8jjJ zj+!QuwwoGre!IM?B+tS^@83jYKA93}hU4mu;2q*E#o)`(Ucp)6rrudAU)80ztvjP$ zsoCD?=11baKIJ#`QtkT1b-?u;)d6j#{I2ZWa>}}lC!9Ck^Fqc%(`5Z;w0%|hfB0JTCjQ!%nZgbL)1) z;ou@C;UHm}?}SgqUFEE+CC$@*^K}sJ08Rp}m{^@(*=P2m@odtzD7C0`NO$Ow1Wu?+ zXyT*)t?VGnISpcNe4eUYg&dbc#@C!ox4f=Pm))5Ni^EA=b434?*QVRniE9!+=jUpF zE@QVXn74t_by@w9ZvGqV#md}PNUKz>iUG?QUT1>8^F7nH?Rxu#dlHh?dHp$q(1G8< z>%sM9Z|ST;-YX1L`t@^L|G~_A!inG@t>p{=NSOZ>(4SSm=l6&BE)tq9D)#0s?nX{# zfP;~hoeQ&_nF}c=Gb=N%4TqmR08CiQh>NIt=%3`k_~2OFcCYjFuD%~K7eGLKyf8ny z`~Mvpf$gcrw&k{~WxwwH%|$Kq14Mtecdx#g-}A4uI{(Yz+vnXM8|yRz9uJD*-juxb z7NkggpY5lPe+fPwZ2Jf4a`=@FuU?DTic7u*f}gw%&1`6{3Ak{61x+1_HF2zns5nNK*N zg}=AXjp%d!-+Q<&-mDI@x^Pi!#oR=PAXHQ|^=(UD=5}V2gxM<@okaxBE|;beRv9Nd zhu4g3bO|A_Pjz#l+NrsE!+~4uT9%@7&c84lwG3Sl1twA+yjmN-c-73_@bB$o4f}NX zXev2kynWQy*B_ghh;40ct-rWn#U;rjjnB>|*VRm?$WFd8AnOq%k_3^Q}*(od( zy(}p)FSu=X3uvC>n#0n*{i3grQCrx0X`^su=YIi{-O;x}kO`?D^v%iO%$ERQOW%CWl3FX`64yOb6b-kc8(U#oxczEoHU|!IRPnWZ?;mit-~N zUGBofr>b3i1hv!w1}y3`3%}S8{6Mc{W9#$X1~OI=v@+teGc%1O2!{9whRWjN_sEz% zH~szJwRm|Ck!CoON@3x`81HT`ZoY=c{TrVg%~DfVrq|cdq0!V)kv%_`u=K3$=pfe* zxl)SR=lqn@>GZG~S8ucHC3pZ0{bY0zU!Tt9EI3!S9;)|*DyH-mZwXetuI?Jb5JApL zdFGATQ;L0%$^z%d?dp13OHL{%h^I|$7oVUMhK|*{pp?YwbPpYk&y{L{J??yN_L8bs zRwnRZIn$OCUG%g5W}1&J0%5FQH*H|Rt06iW8khKVoZqKI%f<(qp`6z2Uo}%z(=~Qu zJ-5kOE-E9>Y}gsWFJ*QWO>0T^$_i!^wUmLAKfAIl4o5Eg24;#%R?VAmam2A>V{(T5 z$OHr`ygCF}+v(|wi-lX+FdDT6rokT8lG!r@vUs@YC$_XKo_?~cNe!TjGg_) ziu^JgS5uci)Np(jYIqhJVO1xLT9`dfh(2`Q-ri~o3TUer7wAO`3;3;NWtI^K2X!xO zju^*9g+*!o1N{fP7NrDxyL)nD!(*7$H5KM5I4Snx5)WAx!^B{8drSU*Uv0b)M7P<= z=ouwJbO44320S~NAiTkVk{J_cvo4Qp-5QVg-d?4&yVFHLzrIBJve)!+xZ%xkIlh1~ zJIpH&W{+hwzF@9D3Wc+d>7IsA$p*mbaoD6AukFXBQFXn3#>tBZJd%4Gx-M!?4+}p zY{U$u@Qf;;80MOjvw$nxIds6#*+f^+8JhsgF|ba06xE?D!b{&k2-I( zv#vT&2kQ8C+p65RQ=Yi$Wwe623Md^)x2pi|{5N!DOp-6Vykvs-P>(3Rz@>-_FFKTX zD|=4wBnzP@Rm>gQD1F0Pi|g@=hLV--ZfJRkbXwvj-%%5Uvr?iCGjDgYsv7KEr$%1AUDVZR6Zf?-Q zxv^agT<7BYvr%1TtO1|6T7GxS+L z$0WI2%hUt-W>sb)Q@+SZ$rWOTlU&DXje%*Lq~&A`TV3~@Fc>@WyN@P%VAye+)oKe` z+Gfo|LrZ3HX8O08zpCl1CKeVJ+dC5C;^L0*3#`Hf1qMQwfekS*M53X4qya`Y!GM&V z{rbQTT}d2(1yV6mfmgNx&TDx29gFI=zv_L`+jqCn>3z4zcfRIl1m!`*rbM@DV|&^G zHcBYCxQYr@aF9y_9+jq|(0Y4b`&i?_2D;G)^Lcon`J%~8E~MX9Aq({yw^E3=WGrw( zL+$52_w@2hN_%+dh4aW?dX7?bNU7Q5*U?xrDOsHsc#sR`i9~IMjV0Mo2^D*mK4FfA z>ks{rI)845&M&Y09S9b9i#AJ5g{^Dk2&hk>zWMjb(8@|0Usy#20T&n6!Qls_yqwv_ zMh@QO7d-ZgiazS?+Py4Tkpg6y05mi<(nhH#0)&2ekV+ca(ck+p=vY|eh2&tZZzcjM zOc7&!GkLqF`*q0|w7927<6E6zEf?VfV-D}9wv6pTlh*}=DZU!N$(g>dhZ`WPy{(ZH zzUi^49!P6@Tf;>i`rhv0U?BKeOVyN8z#UzNI#5D#sP6l{xVm=wBoe6rMG&5_m>ASI zD_gVibo0ujQnai!WgZ%o;=~Ov$d&jh# zAC949fS^aTJ(#Jy;2ySkJRqpP0EgcTi>ta9vuf1QP_`oKcz{}wfEA-Ka7(k%5s$o#>4V6qDH_qT*v;ouL9hLFI-m*bh>?mZ;qPp6 zS7d~`x}>e7WF`s02jZ~QRCdPdXhX~IFi?G1b?&S|u{HEJH*tN#ngl}%w9f4JRSgZ6 zjJ^62DkgN5HO$XZ;HlYtnE0fmzAv()Z={gu6;aF{EnFNTi4691JYiKi^6M*kh6}!D)%ft(43++V>?38m*w5eV3y(5XkPWf@azvwKC!>pg+b4wy`_I8j! z2~>dbv3iu$prC`P|8&rrn$6<;f4?<=C;coK{h;hmLWp?*hY%0oBS0P=TfU+o{9E1L z+_Wqzt#owXpJ0mDh!4#@yM))%V}kPb9zCTVl$?^_cTo}q3E_;h zjQW7H73R26_*@@wD{U>!v}t~%H|C&JT3VY0c&f>b&&7ETq&3z>a*Q!_28Sq9CFGzF zG+4q=(+o8L{v`VN<-cXBzLyK0S`bFGdeo z;qt$S;>n6g8K>gd1^+$k-j>R(=h1_hEz_9w11d%&yEI5h1@RH3RR1E}vUkD=vE8q& zD)=q^R3HunL)E*4Q2P8*sdxFUoj9tf4-`o`@c}R!8@R9p-uADbs3`9~V0Ok9$E`hd z?@Z#d&{cdnlNsr2cLW)AQU?yf}WaW&{(8^?2K{7G__D#QC&k3ul97p;~tf|@V zVpUf`bd#%U{ZZyRRM)mC76ZemF^$4p{nb@=w+bN1nCEr2Rj6!k^wJJwuXJe28_{)R zv1Zakf?FKs)>iIyf!5XsMhY&+xV++P7&x&k17ChI;^ObST`JnTM_RgyoU_0gZz8~eM2Js_!`{s~xaBDo%;UPJ&5fchsmsd@@hc2sb3O7g-Ba7nj|P)?K+*NU zIjOxPQlQSBRI$G)Wm?9eTLt0{YGo^W6^$p|N_mIf*l1Km4&Ddv<3aC*7DsMaw2yI@ z+vdNRSV3WN+4&9r=xX4kdkO#wE>_Y>o(daV{-UmE zjGH!b)pLI?&uQD5=IO$TzkMlV>`XV@*p+F2@$h`69q<6JE6@0n8^a$BY*sG2Dgq2~(>@3)sQe_;Jn z<4~SzgMz(TJqt;WnUIfP!pqIL>+SWnf1SOccbxB~2$6!NI4z6;e^f-Ac|dOfBRP5W zfO6d~o~aPYxqm)jo(QN)1Fw`2ddwaodjsy^&?ky)QV>5W$TSg%mIfGjL7ZIEpP43K z=HZ3^1ryJ(u^NYjz=$I>{%|ynogmJJ4kpZAr75w%tFpA>>!jsmG!=6Z&;Megcly3o z@O_}yXj%seF>?GDm|}u=u|+60F7{g$J_;2#aY0)0~ZkTz`4Kn{E$dx5u$H{`FMY;#pCYS$AMn7)3K zBkT)P2n14=LnYNO{-JGibfr%LenSRA^#Lv(xn_z?%nEzdcFWpu^J@xJRQ{Y7Tp%`NG?EM>O@&dd-!Gt5)}ob!NS0_4-E`h zCS{k*&2dN0aes2gH1r%OW~8T1#n~}!Xta2>0wG)43Eiy*788(?^CS0##%u?9^$ijY zGu0H6>Wv%hkN7z11IWwGC&FUB%Z=MNdiw}AtF&5Dtf;akGkDNb>N%yVy(xCIjz!&5o(2fBZgvcX$Y`%d&gny=$f~rmgEA~)DWn@sjU^DBS>mUIMr~`3~(J@UA6yTKv zK*!s8n1OJww)DGrAavcP0X?7xWumUA*kes!sikL&vq&Ge*y^RAE?9%pZa7^yB#X=R zXuI0>>6}rk<6xx4G0BgZ&kYfmNf%1f1dLL%Z0R&sJnCl}qZy|Q8a`GauyzUb&^tKyVT3K9Fo|6>gzpozlNS`HF3x?7Z4| zreUiyYq`FJXCrPOd@gXH0IL)1yIb1~cSA5c$QV8~z zSHjn9AtxszFecCT2{pR>^Y!cd48l|86#;ZY4$7th`CML}ia%e-kmdTQ!TK10o@XW5 z{6bpd47vs4hTbfD@JMp|ywPele+@YEcwZtO9bYM>8$koZ5- zrW&q3-#GqzQvgqqgLL^^JcMEi6GF4IId4#!Hcs{+`RF8+)S(pgpYe@U9~ly{zkhd| z^1bbwQpB2=m@_!-pOr?*!iK-i@j85d*S#Z}Fn11kt zDfBa9i>f|7G0o1-ZVnBVi2cOHCDdU0J5tAaj}g+J8l%~5gfw@e3h@@^vCFL<;=@}? zFj#!7EOrNv+4y3l#?S0vC3Q}&^jc(ewPqzJghV+d=N+#td6br`UFK3mva3k_#4ZWf zA91k2nLYy}AVe7BxH5s8#%Z+VtveLeTE@fMEYpli!O0wGT4(cdTBUTcL>-F9CKaF59H;bbNWvdPSV{==+i*@_}uFchB;AxI$PK$xR@J12QQ|7b|qU! z%w}~8SYgxilDFmyr#yPAKJ7eskhu57l1;VkDyg}eB!am|0;7|I7W9M+Anwfj+k?Ab zetg2EVBy0+s82U7Az|PJ6b668By;t=7hzQhoF66#1c#ca_m5vY= zp(g{H_3a$1$5F3Dfxt$~D#K9E6~$~8_4cCIHZ?PMLX;e<+(*XX112sWVOBiu-Z5Ub zsqOx=zOXd3Q$xdssFp)mHdmETq2ud_tFHIOr$Sj~(ZwE=q1kBv>3W2&0_!t_3hNUR zBiuj6A9OqoE>%6}=CTq-`0V=$NZL{f>Nah{2NP%foMbaqIxTk6k|(Qd`M66@Z;CJf zQXNt(nT&;IN3tIJlPOwlSd@PhBmSOs#}Mm)6QLmgj-lbWyXHuFd{6T*ipq+81(+$x zQr~0=`$A(&H%PvU2u2DWTJWoV_FE&1Pe|Pk$`JMSj|{;ob%s z*&Ioql$@l@s+BZ}a^XH+NcsZ$SXTEI8G>-x&-xBJ7Nm`n5EcK>gWs{Avp+9F8cTH& z@=Q_uuXm+yQbi?u{+)#IM#ShVeJkHy>b5TH0N zE2fZ!{i1}Lox^_hy1rdCxo=BZZI@hL^{)j`gRFV4=$d%bz{IG>w9v|Fqts7TSC)Jvs>P z&Uj|;pU-lBtv_K!#g&hm@PBM*I5lWE9tiD709qjD5wQil?$jHcU-f*q(+@0hZMmg$E`EWc7&RaF$(VZ1+Kumu&hdCgd=Q%z#hG0rRmP(mIi<`L z>!1=XD>oe-5s|<$HooNZy7FK}33;Ui0@|N5Aok3_+0!fU;_j_rz)FVy`+zc}auL_d zYP?f7{X-5vtQZGGD$AZxFG~G9O zxoaV`b*<1f(6@Xi48D(tHWUS;-`^zV;V0x~r-%8yNE#je7*GW<4u%&b)tSGbdO*_{ zT{bkut4)cU&1f;|{(vnM?VIXeXO+tmd}Hv`N-^q;+5PIN1<24%GcqwW{p|6dI6bCO zdvpAYv%Z2fH195U@mI~+$5S4TB(HhEKF@S|#xF+p6lYleO2o++AU7tD&rS_YY`|3X z4jmE_gtZ@t`wtG<>2OkSg4^1EH1xNO$jk^Y3CiHax@ zUl9)Nn%rf~O9?4GHmwpbn{Z*IZ-Ff@Wm4NzZLbOD4=EJHJy{Rz2cftQq;{9}Y8T^S=| z?-5Sr{ZkaY<6`&mxAyBYCa;mx(@D&lJQf5Ag0atH0pRSBB=}1jV)ErF3i{ zLVT`A=32ToxZ(qn@j$BK(M@qWzo#Je*IYOW6fEe0{jHspFzHdo{vDad>FzgaWPH|a z`Vg1}Do+otyR|p^T1;VGZN$pTQNI*m;V*+lli=gcc4SXJWtJA_*x2h zR?&p~mcp~}GT$R18rmTNT2UD6Knjvh0H~kCkb2Y~rv%HaDtd><(A{F^>VB|o*E|0R ztPc8AWy7>_au(ha43CXtMoPzv7$K7&Egw_75hEcY^7-iK%k->nL`8+DbrvEz=20IB zCL`Urh?N$u({-XWzN55k+%^do9!X@wl@BN9{Km~9E@!hUML_P%$Os@3VCPOx?>z7D z?sS0rgn)bQ+aiZWdSe#ea;L#rEBbdcoQ%ZGGrNpFsmf;CMGyDx*$L+`)U(zWM&0cSdwGy@PPhKC!2y`UxFlCkBv$lD5^0-Id)loXfV-Y&E94JzEPH&-yv-dn=}$ zOPOC56693DLt6_^ci0!N+l_!JyJs?V1+&oL1vOW_5bY|D2xedPsxf3#;bOr-j!kpbyV0uAxr(s zFSL0(-M8J%r*oP$|9eB@yRbKlmL;zV+i%^PMNYpqG5~7yZC0NHO?@yJdj)Ba84_1X z6WHM!pOzaUY;Q1@A&}SY&wVTnpEju{NOKd)}JBfkc{in6gM^xL5G{=9c zG;0F>uMmJrs ziO|$?*%Bsmx{J&2{DKfx&)@5RCs{0Kbqd7Fybp!{F=HWzCx+FZ%#bFyG}1op(vS%W z;(s8kX>l$IM+`W=KMZ5JTq~Nqd@_Z4j*@~4NXti zc8p=9Q8E#@ufKkC1P_ml7!wf@ai-IoA0G@R#}Tl9^>r>WF&(&(vwb4rt@yk?yW-=k z>awHkjKnedkAVBt&;X*qcyHf+t4}X$aLO!{)_ByLa%Bqk2=-)!ohK>q?>Udr+Z^2l0w;O63&#JeX;2$eZ^!aFeUnKGP#$~mTUOJjuJ9y-J zTyL}JWK3l~nepVZbYrEkHf$JhOBZ zhJkG<1{*8vU*C(4g}u$KT3j@wsG$|$@CHD)wv)3kp+pX;)*1cNrj(Q{N?Ibb`ywm7 zc`jr-qWXGuK*p&B*}6c)lrzttc+n_Vf*Yfif4H`IFiTrM3Yody6|)+2#tpy7Eb4(__beBoT4H5f6pAV-h!qo{0M)&(M)UDy zc(cxFxCf8+qZ!SBJHrs#JBhRD$t1V9BaXK0`ejT2RBlh#mI+uT!QYyPv z>Bt^5FE;dl$L*k=Jv*y&149-^>;1>VNMqX)Ky*ZL++`Lj5)8nsHeC zq4Tte=Ta^=CS^7%3?`(orV9DcahhjFF=)N(1tjG2D$wBqMst7h!jfNLhisH!^n*Cf@VRC2W+_m! z%Z`S*^BO}w#~*IdY@D|0GY4*}A`H zPN#cQqS;bSJLWgmkK+Ydig*nq61?@a<+g*T?&pP_+l*IH71LV82nNf(?*Sp@`GxgY zwK~P0ueb>lSqUesQ2NvaQ>j!@q%=79o(mMieILg^EQO;@^>0!v#V;`g=_wx#M}F!J zyIXeHKZEl)e?fD&n_%*}*`W4&=xFQ_V!eM82NDu`$3_N!jQv`|KU=fAxN!>zYD5`h zj4`sc2RSofwX`g&$PkMZ`#~E_z^P15BJ`xB!i6bPWn@8u`xOz-paqXD%&8RP!>(U^ zw6&300x?H!bgAN#KZgCRlei`irwm z%QDfIAf}AZVGLiQ!j;EoPc0eqA>tM4$z-R@NVChB%*`h4IjkX4yE3=SZ_F`fyFBvC z$X}^A`n{uLg29Y*oxKcAZPTp9rSI1G`1^!>1!)EOHA(rlmKcWCR>w8=mV4#jjEPN6 zt#=Nr3#u_}Tt!Fq-wq=Gcq#rFgQ5a6?=R8 zu3=fjEHPI{LL*8h#v#Te{WHCE|J?V+5s5@kbfhz}S(k_#OaHBJX&O%i!!cY&PD=R; zs*}?d#s&dkK>&B(%9BsZi}6WJ~OSF878fu!I`SDku^!Y4U#du9@Oh_fkn#*Uu@JcJ{=T*kCy9eKlcro zn>Y@aE18d#5gE@Qpgs10a}24zi2fat+T5yS{~vQD1H#s;f*02c{(SVyY%2Xc>ajUV zTJEcaa6DQ{g;|T^F>Yo>6b2q{aNE+y>~0rg*G~`O5y-+?g@hBO^WO5#@bHvbEI2;Bj#wcqY_>_6E4q zR|j=dg80cn!HGcCe*ztV7qbTyvnTrO@^u`n`ObjeUN{B*%p*9-v3(F+A6O0e;!jWk zmfPGuk8~M1k@<}g9)YqMl*#fycN`W1M@mhd-r$GXKzpD<*Mo&caX-2<>v42^t*D)d zU{8XFuktA&3nQE_?P~KVKhE`7-FTAtcj+T64dx8TR$AhJ`Ag^fwAlX95ll-<3Q|?C z_xHKPXB}=EUs01+nq*h|hTO%ZJ^CpbzGYcyXKFjErX-iN zwYSJS-CgCL9&HQIvGH1^*QVWJ`$8ohW_pzr+3NAbJwC#r*4O>O`TL2@gxZ{XY-kQr z+(r=I_L0Qo=;%sLM=HnDgQtG@o(H5rk{6MgNdrqyN5@v7n%dvKxkj#QmdCoCuN$x&4vq5bDsPcTLi zoA;I~qh1~Kllw_vb;O6yA2ZPpHbc~8HMUzu98Z=-2%3|TXK~`hzADAoT?ZpJi4&w& zz3(m{&OFw(Eb>EBchhHWauWNZ&U>_6yEXT;o`1U49xl%y;^xV)#U6#8rH9~3!9Awm zhC(qoHkd6zkY8m?`uD%|(q9y4^nZC+)R)inBNKeu)4<-@-MT&1X>r&DM@B|Hj8;+( zDG0qnbJyq!`x)WL=XS;|?M2a6@uT3a^CW(w4TP%N+_ginr;oE`Lf*8l25kQcu+F84 zDF@?BxF&D+h8b+#22EaEEbhXQ_)px8*67a>zlsn?)SNX_k&y|m)z@Rl^Ll=GL_nx- zllkpfK~)ShdU$%d{qj!H=Rse@wx+O+RYlWYly|!~1yLaMERGZ7a_u=39$zAmB`@}2 zdGgis>BO1Dj%Vn+*$>H^t>a*i84c4G#t z1f!`eqK=_(+M`hGX+j;1t1BxDY%D^q4VF@bCarRalYfd%HV-VyyyK z`I`|x8<+4D|NP9IVw&b)KYB+so7Ww6-T#hB(CeIxoZ?rV--{PAv7CUTkRvhy7aO8%jA>%?4C%4Um}BL~7RPgV zJzE+N7V!7>js{(Bq8Hv5#LQ0*2KhUEGcsB~&9HHqQI`ykElcK6wH|U<6cK|jT+BD$ zQ_=C6BqAZdY)3Hb5gA~jg5;*Cohcy|91ncVwLkF>jk7PabCN%FujD@O?djbn6SSoC zAE^e8kKTCaYV^^>^i+mV1RoQlZHk=rdiFioAsMEH(jdnND=OGls zs&BzD$IZt3%>oWhKSF;6^exougT1+IMZU<9Pw06;p58p775spuTA%RrG3^7*hmGJ6 zwCtcin*=GbQ^{aTTy7&=HMo_-LD4`cHj_DaLXE##^Z$8a8Z_xEA_zVKNKF8Cqyc$K zNMIbX-Wx01r>GIVrKu$2^3PwyOigL!Ex#4im!nur8vH6Aop%h=4w$i!FN#ZiLdLv;(`vOD4(}wTn$Ci`U5HM!6Rv0=wPO)dSk8q)lhx?>AWF2> z>5GcCZZ*J{Mt^zvk8_9GlZ=aQjh;S~VSqvlSr7Iej#Ws=e{XB+SIhbziuc^F=lb#$ z1-xMW&HgGYAww|laFy=K`=RYu?*MKMacrGqU2s?$MFd@JV9xP+QQqlcsi8tt(Futx zh$M2j4Dj>R^}%0Ah7J28Kt9QBeQ|}&k^5; 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 l = new LinkedList(); + + Laser tempLaser; + + Game game; + + public Controller(Game game){ + this.game = game; + addLaser(new Laser(100, 300, game)); + } + + public void tick(){ + for(int i = 0; i < l.size(); i++){ + tempLaser = l.get(i); + + tempLaser.tick(); + } + } + public void render(Graphics g){ + for(int i = 0; i < l.size(); i++){ + tempLaser = l.get(i); + + tempLaser.render(g); + } + } + public void addLaser(Laser laser){ + l.add(laser); + } + public void removeLaser(Laser laser){ + l.remove(laser); + } +} diff --git a/src/main/Game.java b/src/main/Game.java index 45cba90..7149022 100644 --- a/src/main/Game.java +++ b/src/main/Game.java @@ -4,6 +4,7 @@ package main; import java.awt.Canvas; import java.awt.Dimension; import java.awt.Graphics; +import java.awt.event.KeyEvent; import java.awt.image.BufferStrategy; import java.awt.image.BufferedImage; import java.io.IOException; @@ -27,9 +28,11 @@ public class Game extends Canvas implements Runnable{ //private BufferedImage player; private Player p; + private Controller c; public void init() { + requestFocus(); BufferedImageLoader loader = new BufferedImageLoader(); try{ @@ -38,9 +41,10 @@ public class Game extends Canvas implements Runnable{ }catch(IOException e){ e.printStackTrace(); } - SpriteSheet ss = new SpriteSheet(spriteSheet); - //player = ss.grabimage(1, 1, 16, 16); + addKeyListener(new KeyboardInput(this)); + p = new Player(200, 200, this); + c = new Controller(this); } @@ -118,6 +122,7 @@ public class Game extends Canvas implements Runnable{ private void tick() { p.tick(); + c.tick(); } private void render(){ BufferStrategy bufferstrat = this.getBufferStrategy(); @@ -131,11 +136,40 @@ public class Game extends Canvas implements Runnable{ //g.drawImage(player, 100, 100, this); p.render(g); + c.render(g); ///////////////// g.dispose(); bufferstrat.show(); + } + public void keyPressed(KeyEvent e){ + int key = e.getKeyCode(); + if(key == KeyEvent.VK_RIGHT){ + p.setVelX(5); + + } else if(key == KeyEvent.VK_LEFT){ + p.setVelX(-5); + } else if(key == KeyEvent.VK_DOWN){ + p.setVelY(5); + } else if(key == KeyEvent.VK_UP){ + p.setVelY(-5); + } + + } + + public void keyReleased(KeyEvent e){ + int key = e.getKeyCode(); + if(key == KeyEvent.VK_RIGHT){ + p.setVelX(0); + } else if(key == KeyEvent.VK_LEFT){ + p.setVelX(0); + } else if(key == KeyEvent.VK_DOWN){ + p.setVelY(0); + } else if(key == KeyEvent.VK_UP){ + p.setVelY(0); + } + } public BufferedImage getSpriteSheet(){ diff --git a/src/main/KeyboardInput.java b/src/main/KeyboardInput.java new file mode 100644 index 0000000..2c9ac64 --- /dev/null +++ b/src/main/KeyboardInput.java @@ -0,0 +1,25 @@ +package main; + +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; + +//whenever a key is pressed this runs +public class KeyboardInput extends KeyAdapter{ + + + Game game; + + public KeyboardInput(Game game){ + this.game = game; + } + @Override + public void keyPressed(KeyEvent e){ + game.keyPressed(e); + + } + @Override + public void keyReleased(KeyEvent e){ + game.keyReleased(e); + } + +} diff --git a/src/main/Laser.java b/src/main/Laser.java new file mode 100644 index 0000000..b320143 --- /dev/null +++ b/src/main/Laser.java @@ -0,0 +1,30 @@ +package main; + +import java.awt.Graphics; +import java.awt.image.BufferedImage; + +public class Laser { + private double x; + private double y; + + BufferedImage laser; + + + + public Laser(double x, double y, Game game){ + this.x = x; + this.y = y; + + SpriteSheet ss = new SpriteSheet(game.getSpriteSheet()); + + laser = ss.grabimage(1, 1, 64, 64); + } + + public void tick(){ + x+=1; + y+=1; + } + public void render(Graphics g){ + g.drawImage(laser, (int)x, (int)y, null); + } +} diff --git a/src/main/Player.java b/src/main/Player.java index 65b2eb0..1149cff 100644 --- a/src/main/Player.java +++ b/src/main/Player.java @@ -7,6 +7,9 @@ public class Player { private double x; private double y; + private double velX = 0; + private double velY = 0; + private BufferedImage player; public Player(double x, double y, Game game){ @@ -15,15 +18,48 @@ public class Player { SpriteSheet ss = new SpriteSheet(game.getSpriteSheet()); - player = ss.grabimage(1 ,1, 32, 32); + player = ss.grabimage(1 ,1, 64, 64); } public void tick(){ - x++; + x += velX; + y += velY; + + if (x <= 0 ){ + x = 0; + } + if (x >= 736){ + x = 736; + } + if (y <= 0){ + y = 0; + } + if (y >= 536){ + y = 536; + } } public void render(Graphics g){ g.drawImage(player, (int)x, (int)y, null); } + public double getX(){ + return x; + } + public double getY(){ + return y; + } + public void setX(double x){ + this.x = x; + } + public void setY(double y){ + this.y = y; + + } + public void setVelX(double velX){ + this.velX = velX; + } + public void setVelY(double velY){ + this.velY = velY; + } }