From d824f78071ff9aff0208ffbeb7e2fc5f75ab1a0f Mon Sep 17 00:00:00 2001 From: Juraj Michalek Date: Sun, 27 Dec 2015 21:10:05 +0100 Subject: [PATCH] clean up level 02 --- data/images/gfx64/st_spitter_idle.png | Bin 0 -> 28579 bytes index.html | 29 ++++++++++++++++++-------- js/app/level-01.js | 7 ------- js/app/level-02.js | 24 ++++++++++++++++++++- js/app/level-tools.js | 1 + 5 files changed, 44 insertions(+), 17 deletions(-) create mode 100644 data/images/gfx64/st_spitter_idle.png diff --git a/data/images/gfx64/st_spitter_idle.png b/data/images/gfx64/st_spitter_idle.png new file mode 100644 index 0000000000000000000000000000000000000000..e5d624cbe9d81dbefd6da527e3d0149210f73b44 GIT binary patch literal 28579 zcmb4q19K%z7iMhp1{2%X#I`fBZfx7OZQFL{#x^I(8%}IH+4-t=f528(SF5Udy8E2x z>5fuXltMldXcCyk%&6DIXk&o*%u6mXM%x|fXRr9sC#Z)^jgK5|MA*+_L=4N@aov; zuJ+E!%FoYFYl+%SOr?pZfmNl@i7JCiXW(lzrBD1p{v{MsbZT=@l=PW;n`3H;F>hE=HVJL z#&Rs84Ay)$fAWYDpLCBFNOZ?4>4r)-EdVGoq`?0o+e5q%TeRlIOIGnG{!9HlKjsa1 z8ZmtDOZdK;^Zj@hd}Y=)xO&$PK6jgJCaou7cv&JkXsmmNcYz#^-*?lHQaVdHd={RO{92j z3yr9LIzSfXBG5sXIq@{b zO2(h?0cR<4z{+R{Sy3a4O78PB*=Q-lXMw7P3hCWURoq;sFQm;xO)81dp5A*qonI=X)l%wLOji z7YI`d-V6iYO3vwPq=*APnj#YH9O~q$Oorij&1MEdSQp#aky#;>v9KSFf{XtWTH&}j z$HU>-AjWD9Yi&HC&14l5CbBJ?MFAq3P)v|`DS;0ZGsE*qE~DAoH2vp}`_c$_Wv-Oj z*cM21cul*T=>YQ4^q2ZF1=(rY8$4pv9XdMXQEXqZkgEYP%`&7+4ZO@&EJwAyL1KlY5GEmM{GHj2TpXSDHr%hBm3id~T*v&Y(7Z;;Co} zFFh?}HVOTL&kU~`kJu6=UqGPCr;~E(AUrEQZ^&O9x5b}Itizcs!s$>r;$c|WEAg3_ zrEqXXIU!A^POWtry_x4Ubj4XlKMX<>n=NHG!k|a#%&b@>;YopYfvjMaqDVoiSOvPA za3u?oe~c>Irj|9rPS@xQJNF6)={W#Lq$VbX95CcrOy<2>z{yTRCx|TJ96Hq#Z)yNE zYc$n}^k@g-WN|Sv5i2yW^f%GPh7Sqb zM0mz=juG&(j+<(8I{9R7$-i0#dAzg3T{|aaNYESyHeVR=ul> z#TiOdEwiB`T5vS6{Awpu#7Rbl*SPRS$*T4_B%DU1<#hMOm+>Pg7v6B{5VA9qYG1et zF&tMhoT<#m$jpanMlCoxkk0UT#L?s;v+5Ou!xJ6LL^v=sL@>+P;fyq{OUYJsn(3-7 ziI!hd(O63~M<&e7jDG#XT;Mn6ZD}k({zlvfKfx`#@ z-CdKxT}q4P$bFZy`w*^Wz3jN$|IF&yZDCF zk*RVN$v&E_cH#1ZRAdubw-jiP11K!g#Ci9!U#3vyOjz0r zZFE&*O*O=Y^$dqgp~wPhcrCCcHiTURFv%nrwDiNtc4H;mrA5nJOjgW;$AlSej9QYP8Yh7hELC zsI&d{Z3-+|MuK3_cI(XtDFq0gpVz!B*d**`@d?e$GabgdQ=g<&= z{%#z*)0h$cBX<^3_o?x$F$5 zO5?Yt7qFtVS^I6^`%mxh2$k7Jc|@^l0pjnmjODSc=?u!u9p1*sz|e#rFkhp-G#S-W z3oXdLPcScLX+N-;I<$hWbtbUr$!)<9z->IQA)#xYH9T+|qV=r%y}5e@!-nFotS64S ziBf+1&gAr^s?3z;N=&o)0$ZDdBhk?oawm9O;Ied8*3RCv`v) z`I;Z4rlX?;BSEr#%tU;^;M8NxN~Qf5OzPRoE+!;E$9l;Dd&2QAKLxDsI}D-xpVmoo za*=Dpkd49L{RnfHLv8Wgib5mb&6wg6aHPpD1wN&jjeHA4m%vqZZBBA?uu`kKD{;LA1^X{ zeLLQ_$-#=$vSPF(s$Lm$lHsAvXpzT;bGm7>RoloO zr)yUmIYMi{$L1%UR&9qRrGlV8Wny;P;923{FsDS3Jnl1sV)&jnW9GW zf)W9!W&MjKlD3&;jFbfMnV!)qVn9xFV!#P1=*KX<9v5r;4H@E{_1Dz@nY?HCdUF?6 z32)o&I*^(>;r7o?*GNT=c&(iO!Tmgf9zWWV+dxLcK&M(cdVDXqEf!YTjldA}*lNU9 z=i-g1O;ep&r{<93c&jW6!|pU38qZ0m(~il9A@1+-f=wC{0zTq*<$8D#+T3%*O001* zQ}o_zY1RiAmQ{=pY8%N6Z4ybxS=Duj5{Sj`B&9iwj8!F2YtRf7S76m1Nsy-hcZR#n zPR{_UkZl!A{De=3%S_vHI^5k6+T-4%+?w&x0(Hl0Ez)1uk~M@#TBEwKQef>0VaVTHtLBqIq!Vjp zZVBKZ9=a;hKkXJM1xFH~BssHb&Aw_8>UW(b1j zzMn|F`1ZvTGCrJ5q@MvFU`OX2{~Zwb`Xcu{4@fZ*#)#e$`o7r$U#v+8T`qbpz-*>y z*iml|3Fe;^6B@QmkDH`k#><%R#6n_4IK`O-su?j%=2I~Y2wSYhbAIq;3UBU;L!pOQ zla)mR1^{Av2%IUF*;j&Hfjt{+y`Fg!QFf)(dlXyz1+QHK#>eQp zP~WR-{uut|u=(AIe{yJFC(yZxFr8N-1{aLQUiTHcE2kZHu-Hx#nI)(LqBGTIfq5&0 zDblDCm@X8d(uKk<#f|aac6HpsYwcR+kz@k>;lY7g(3j&1M*2v^Io|FT&!8EwbFsuw z#h=~iuAVqcHnk46Dpv4mq+0z&Q<^u6km0CTaOVkwNpaKJVXudH4SHJ#^pai@@AAnj z2&*;#p7O`U5LeJJPH84O`ifwz+ynS!aCbTOqd}f&H<}Y|IMMkO9yv@K%sEzywrI5x zV$9IpIXm^`EL=BKM_^P4EL9^N%jL8jb%zv`-Q{ykVQT5qz9_F z+QosVY*Z>%GgR_ol67g`z}85tE<$ z95H_h($kcH?&Rqwijw&e@N0J;_1UrD8?fT=rFJ)>d9o273#y7JdRKYbChotlne+0z zsdcp3xzCOFIz2)E0GLWA`1kThv>>ZPd@sOwnZ(F-gjZ&%X+jr=OI*NZv(6?ZOCQVH zW#hTUV>OK=Ve77zrZ%>d90szB>LV+w;1?7!o#JQa2=bwk0eIT&dApC+wc2d!X{0Rw z=(*VD)_3KH7WBSx#{BjLzt7q^+Pn)yY6od>;cIPvXU{t%MP_Ya=CyLj|)px}j3NDQrDW)uot**AlC_unxH?PLI ztT%R!ps&Fg**e{_hA}~);2=p~1Z<$)PApA=eGPN*2OyW{=U_NhnX!b;560y<-n$v! zuLqh`Xa>I3Am8jCJAUsIyVNT3d%j`es_j0m85)KU@je~=4o{SkYG0T!@eDh*+Zo7B zIjQGv{fS)Uz#Q<{c9POeBPy#M$4XX-Z$cT~XltJlIzm&{M3pe+aj_om5MFCz;-{{&@1(H`3nD}I~ zq88rJ5O?i<-cE}!N7re&U!G>D?Q?^xOt#RScYxvKpR-KW&U=IBdfl#BXb^eNk({;l z^^T_Za8`bKRw}zetc|bXiOwSt@i6`B?!I@?*F!sNl9|9R$XJnBQm>UoywhNnVd+_T zOjNv=NYwavWMEfVjNEmBDn&$mF8?ZTv)f<7ahWC_Sxpz8AGw(iFzZB*pz;U!y-Ci@ zizki$DwWOQLc}udnXcJku*Ei+;w%`-9c}IHn!31(804N*Q3t?l-}*hz@{Th-8WOyA zN`8FbZN<(RW~SWbAT`E5b6KdKB{9x)T?23_t++-OMLpulh^3}jC;p4*L5@sROZeaHH89(WI} zW}Am&mNym>$tl!0!O#z9lAPqbo2EVN5p;~bMIaP=eUZ4yL!;ll^%x3xBWEET8Vg7h zQDMQ42cKe~;V$?9i@1JG*qeC1u|yVfZ@9a2I=sFDw8o5wK~5Wke6{BXF{B`*BpYw$ zCD!xUg=PAOu+V^_YT}&Fp)o+wdbwsUX&+%ccc($Ns~Vslyv#(lvXkYLsRmH-CDqft z^zAjnUE(-|yUY&UcjzW_Pd7m~-|P4v4n`@n2Snp)2<(A>AKP<$hw?ocGD1qmyfC1Q zr@qL*zI>ATr|l5EfQY36uMIU3f~a9`1Y*(+H!&ZIkQZlzU5$y$8Rd5_jC28rV~ERq zD(HXRbGD@=#Ut5DS#74>;$>XIlO1IfK1Ko3w1p4Ck!``aB4Dh$XkY8yhsRq)ut$#^KFi=g$ZySpS$~k7V+Y3qv$D8E`yP1 z&Z4o(I5-y2V#U=qxhRgoWHf@Vk*7=NxnTgYonw!BSVxy5xGZw13PPwQwI(8(q)9Z1 zS7d9~d$-=u3&W_L}lb6Z#W}o?pQG3taBY`oQhjCtzC2DwwQA2Qf@b`Ur zqXx($elM%(ZtptZ@qj!+uWud{X7=Rai(MKf0SRZ)Ri>m-tm4C=H9Q|qG>?r=_#>=9 zg?(&MWz}s*MzpYcQqa8`9BQTi@-kOB9op?bkHl>O*&72y;`Q*!LQs&?iHU9_@gBDa zDP2uO`a9MyC6K_i`gD?@XstoWrAwn=7%csvDLjD#=;)kfE5h2zLvu&Z^lL(5Zl@FY zvOajTcdcvO*<@Sjih!%bgPQv%7!&e}fC?%4Z!9+DVJtSOr;=9tJ22W5`)nX_!BT!l zQ+=Lc*(?aGI-KyG%VWnSnTP`WrAcA$q%C9jfp4p2Q7Tj_0W^jD@x*wNy8jUQu5&ox zK}Yax=I=)LF&X5Tljs4|f3G^3i@&xmrLC`0Rpi9`*Ab7?K$io)2{`g;+haw3~ zyGQ-WQkvxwm*>vHE0iRf4K%t8X`|LOJZo|>h6&Yis7w{AQ*hzJ^Jk!Y&^1K%8w;?E zIexMl1Q;^pS84RyqrWMm_1#B9$rzu`4ta+yCFK_g4tR(P-|;(O@+3oui_@#$1$y+L zF6!;<~Bj+LIsER1np`drpT_EOdaBHn-W$Zg(k1cxw| z{rOp_g~P?KET-(~58nOp(=N1OD^$}ym?Be&SKxOU>T223jP8l(&SRAx=_tMjKj5nJFt4HkC^@C+)f|2) zs4eJ0d9(GKPtV@W1Gb&7(>>1-V3hx&%HVk#)3FXO2YCg3R|m3XG?`<*7SMjIyGPPv z7r=0X)jZj4G=49eJ2liIEyY5&k%j~Myu~#IFELDL?R&;~bW8_;1F4l963Dt1@O1XDuM&nr z%^8}o=835cFgRNxHC)3o{dRA(Er!6=N!I8Nu?k3F2*OF{87>Zuu?rBVqCD?0T>agh z{9%5`A_tqIHn?qX>B`uYg&C}=v0&X=UZgW3A8&L{Dxqys_?x%HFH$-SK>mlX*vVAb zP6QW|)NEPHdD0Y{PVG+Z86eR04DHx&_)vl36B%u0vqk57i$4w7rN8gF1Si>9oBp3m z1k1C)w1AQ$U?FvHf03nPC)I5goAAfbEo;hM^VbVWs9KuFN^Bd9s^LfDg-dC!C5{Vc zzge>GFS)r%9^;xwodIm@(a2<4?_Ux+$rR8yc4Ng>H!=e>tj}00shD0_wB`!788;q^ zR{kf4O2*9BgWEanr_$axrBQx8{0s?0z1;I=oPBi$|3UxuwOPw}Hq3fD_OpF2;cUH` z#rAa1LH@4(vSdZRuI3B_%;!eYE~q79uHr2NHjwIg6GW=CW6s*PcJy$o~Lhkey^}_+Paic@Xk9taLE!CZX5r^6+2K zw;keD7~m`~ZQpxYyr(#y7ze;RGpit1=R7~?69Un(fx{z zyv+IedCM7!^arPOg06~&)M5dP^q;O1*&k-+Gp)6dkDcRueap$nD=L7f=OQj{{Ku4I zN?$LHQdH=#5t91q9eaiR*M08P*b9X7#`DC7-PhR%Q?jcMta5)AE{jRj_+Z^KwT?x4 z9#&3f?^Ca!|5M8=b;94P{_bgQjaWEsa$ZVw3|3FuJ@52x_S7&Fet@(#j;aqJf*f3w{` zR4x($qWW`_Ik)WoM}2*$8Mt~R1}-~-!r$h>bfP7?S)6IyAG1>OljE-$2Fg3FXKKLy z%wYDuj08U-M#&7X;D3B$b1-Lm=|)Nc_GQdy{!E?=6@4^aMo#H(wjp0%L(~3lviI}n zK})2AZXpv~)ZMpQ2lsLe7|PE0Bs~k)#*!S0Pc<d?1Uiwvh zk(QTC@X|)vwRSd#qvpu05n#N~x`jj0#S!a_ui}cq7^D5Z?^+Val4}qXo-%1Dip9H* zdU0@-x4DLN%qVNFl9+jl6IBTl$GL#02({L#=K6=tUJOEaucQb>MvEa#-VMPio=jE=j9a{3JBn*`ttXDXuQTuTNJTVj+J2OpCdYk`n zQe#%Eg>woz|0bDc-9nbD_^pj z>LdA6@BAQo3dW<$|MwQ4b~rPV)Uv`4LJKz@jeqrl+(A0HUTH!F&1U>zQ)uz{wfiqa zxb2CvIVrYCn00$X-X+F{m4hce+@ul9qPFu3KgIAb`QBI=#4X?zUOb_M8T>@c`tJc( zF6uS0MI-6is)pQQlV-LY>{J-w5($lh^0LHatvR2_(MFW=?Tc%s-Z^M{MLGv!oI^Ur$nui21mZsYoHH= zhQbF~BL5Y>2`Y6_olNvWQ&pRrk>Oo}G!K_VFxOcui??<_ePpa708%EE`)HYD=41~T z4Ze9wbA@ZA^MoxjJK|gYRH_d5RGViqmu9DaPgh1+00tToCId~4<>VEyE|FG}pt$Gv zET<(oQ=GblT_+hlv{V$%hVz6xt~51&jcvY1_#}7||9U!h$xifMl~^;5Jsrw{tI~Zy z^q`zrnN}lFa4;4{1gNT{L?aA~cu3cw$Bw8iE@Jdm@UDwBGE|fDQihWzrBvW4T4v)2 z^@OcwH~J%}#p6+!G0sL66{jS3vAgOl5Gh6}6a%PJ@i>Tx*;iy`;`6uKT*12+xPb8~ zml9ks`9ZoyLmxLs19cfWrS&pE0$4jUm;h~hX-+iDR;JWHdB?j-p_+7+BF-dYz!{yWY*jhFPt_LGw zNjeo35VfrCQ>a*=qO0n$t*Of4vfDAt*Oy$_1OMT(GmZ6tpGu?rG9(rLD4cwpuaLPCRH-^VxRk2~h?Ng?Z;k^7FCB&#)!OZJla1UV$C&xk`eN9+dUuJcJM!p7-Tw&^Hyl*s*F*)G%Gy*`M>ki~=9+2g zAjI)Z#GXg199B}YGw2!G$`q$VLoOM|sv_A`v#GQc4!5-P0oej&7?J3QJS_p;@uK|Y z)k$dzTb^M_Vyg&^_`F-2K6_!f1~0FMALCO0Oo6kUhzju8>+6e;^2%P#1&_cY8alom zwA#yeuXsY+se94_!zm&Sm%EVwysl$`y9YBKLOg*rw8DrF3f8Drc2=@co*3120=DavGK9HSY9cCg}4AGpr+4W+Tjh<9mRN|5iDN zb<`Ewb>w2tIj>pCv4Y-NMtv#w2XQ|__E!<#D0~JwoWc643GL>*f&bqk-AZCK=OZB7 z-K)SHZb`}y&f&x1Oa#+VI;lS_NgXR9JA%sFf-Jx8(uTUXLW_ z=(8FBY&(SJpRbu|G4p;uB+eaXeeCZs)nwG)ghqXwKGr_390q8;foI?b6>Lk)o@eHr zj~NI2!HR?E>2b&=gjZ%b{c9(8n-4!wx1@K&aR;{+O;M2dUuwxupN|!V6eXSa>kfZm zf-u8w?AJ)*$(et4TYG2>_Z1V5HXxhG9+HPEaPujXXS;*S*S6g>fT3pWvvu~XhiLzI z--Fq`zy3*qej6Xd_kX9bnFc~6pQLZ#uQd;lBqp)Rsw6|2r?6YLY~M476afLQI`)EJ z2IDvez2Ig;dFabjLpn;Hjzpavu47#0L$`VK(V?yx`iqB@pZ2o`{;`Ie{_0=*ah9{3 z=t%}bAf3&F<0*UhjE8uC;Wf9HGJlW(8)17=vA&TXuehxSL^y95f6(Wn+KpQ%qOOqF#ix+!qmq9 zT7DDhe0_L!+kk1J8q4?=Vt9JO)f*j8Jl_gk;vO9`eJ-5AUX%?7cxaeed?SfNYWhqd zaz!|rAI!S`F$lDnqp5*}6fsgShLl>t8x6rn;`c2zJXtt|^X0{7%kPUKd9~w2nw;+B?l@J%w1l)%w(WiKT>Tnj5KX0~>o*;8`K|d8il}17XU$eoe0fnPn z=&RPQWkLuxMTL5dJbk$h8HI%ce$_rnogWI=m#KYR{$~pD z@!ddtlLR?*K1LKcgAs3;S1wWqg8Te2y05p}FHa&O7|&btZ{8Nr%A5b!mBB~&BjlFdXJB(B z3+q?W8~A8;J{9$#J=@2Q9qE5!6}x45`G}ooM%I8G)3{o_ut#6+J9bH=||QKz<|ln!~1!gcqf4pw@;UGr=RL?Ty~zC zz|95rp){$1opn)F8hnm_M+civwLSrJ>p*10hPc z&*o&!q1)d(50J4=m6K~HurCdULPped#|?F$S6=?YM&9rhd^<=7*Cf1Ol?u; z?`y`+xpj!?|Ajf;Fs9#+t-hRalIHXrJajbVy&K)T4YWCa3?zrpPwtuRrSuGb9TH4i z?Q!lf``Rpqki6sZ4aF_ct$l(M7*_ZP>h<`_XtcoWBm8XU7^H=K%j&MsrXRgmPozs#4f?S8)pkRGa;$UJBNIt4)FZm zLjD6I=E3XU{xSQX63=02E7@&D#%?rQ+4LDG7`+bIt7O+g?|7g0C83f^CpcvI-j#J( zHgHK|ZWlf1b}b~=dXmrfzJ71u_4v2%bs^3DauG8EOF8$*TZT*geEZkCFLF|hW2>o` zB{v@xVHx(KEpOj_o`LG1Kgh=3@I)mCVh%02g8r##O-8x%Q8)BGH)XS;jDDF=21Tib zc3ci={-9&?{Jyq>d5!tfo|5b4TuNIuer_}W@4#<;y01kpTkOdx-Nx%($M+orF(dcV zj6W~C-UBJm|CMe1UIz(vnXPw#ZfdTx8XR2gy@MkD(=8>w(X+^EupO*Q6S@IOY@!NU zC5SaPArkWjrlj4_hI&4nFQJ~`LKy~R`Wc)HsXD9>1`Bb-n+L;_Q$6#dfn;AHozL0*9pOQYt%~-LD-<6~OHH ziro3(^@42VT)bjj2m{?DDMkxM{o6CI<|c ztRu={bBeOe9gI&fWi5K6V+D3_6U1laUG)*yix;e$D*Z}+!oKp0JkONlZ7bW;*R_V*>z=ueJQe;9plKUJ>fbF&?obpG7MSs*>vaAUOiq6Gf%I@8TEuvqM^#pwd_0iD zr_jZJUa1vp+Uu{^eb-N$Ya2DseY$;?8FkRQT+JpZFeWgW#?pXU7Sa$*01hk<{OvBQ zoM<3YisLAFIH?iH2(lgCAh?NAZgnHMd&T;(_^j`#dZ)klyzhSOb7fH!rme7aHP?Ht zYRTH|xypNI=Y9Km`&e-9*eb|B&L1oj?{7kaH4xSRx!Tl=A;hIx%1Uwm*DMLq}+3p-y}`x{OTuSb~idGz~);rSi&|Z ze-QZ3B2TZN?K<7PsPZo89WJmWT%RqrK6y@uTY0Xr19sqwUXB(_R%VCTg@}bGVR*yy zzpZKZ%i38JTFou!fHpXTFZNRQUP#^6-$w@Yh2*pn-hkNBl1ic6ZmgTMRfYSIzZmxl z{^TtLdVYr#5=Q<2i(7>-<_#Q05JTA{ZCL@>&kU@#c74tv=@(mLi#FGb$r`8X(+f()I=gd60 zQrL|vYAk>rJ(Zq=g7USh*cu;Ha;3~O=t>Po#(qn)B z!Ws7(f`7Zh#VZw*v_HFxo#twVla#|gG!v;WIj%%3{oqL*5$F;wR&#YPo4yp{xtg`Q znzj^f(HA+$1<8sq%bffXu-+&mQ(g9 z=5U+Z%$So2RadNe3waSloJewkB8tR6pdkd7L2;FcB&#yCZtEfCB#!}o0@YqYX~M2x zeQ(F3sk?;U7OoESr8^@YCWpYfGGf)$N=!3fg|a0C#RDvJ$H3ypLnKpbl(J#VAK7=! zd5Vo`C6`@ch`)5Q`-WSpz@a%E77sfYjLhEiWy_u@ESd6h-ML1rYpV+RBJdX$#@Y-~ zH495_SVDctl8KqT(;i1k_nd*NA9kFK_`~IjzZ=#m=z3k1ow9}>-=QGj#I5&(7{{7b zO+br=LJvV?BheBWTcTy9#H~rjoGvstLXcn7Pk^kP)AR@3alsPtWYu5fdr130LEt%q*YyLKa_rlpaUWe!#TskH_`#`QWQCiP4(;cXG=&-{y!WhVFI51 zLFpL1omfj()+KW!H@b}ZPjM(#T(H=st9AT7O%ug*WxL8*x9oG31&pWjZnn4OFW^6y zh<=?HXhqIdpuq@ta4SgWYU)DD_UqTTDcsV*hdTQkKEm}JVwE;*@ zq4vkO@;k6e97M3#-u4gPj;qNS>ebtRYyVTwV|RBFB&=P(@W$cR)q)_0%mcl<+opMU9HSoiKYZp8=)PkCT_%F>#)n9iJo589=eL1xxQYU zXqe4QHq4oe*~r)3%c*fJw!^28cJqVtSpEI=eCZa2F6YO?XAQ$gOLC&d`&#S&n_zf{ ziws!y*e4!2Z5gyD!iU@S^C8iE8Jj>E^+EnuQZ!ry zgB*QaW7#X3y|<82HNky^9j##`BmOHZx+JY*i}EA@$?KDKCroY%?McQ*khiAlTE^-z zs8;%p;*IeXR-P~YE2>)YgJxI#JK2*od0*Zz(tC-l8+aEBJp@hb`kr;qWFodQh#Rni^+>?ABeuGK@seabetQ87|VP zTcuO&wg$f$J^4vN)6MGW-!3UA>YqmosVg{_;rzT8B(4tku6f3}hs5`vZeX%&ZQIn3Db;5A{71Uqza5lO-0krU^g<8VZ}!P1WCqe~U|%Ng>p#4?(YeEjSsL~# zY*eRBQAEUQ+g8`lvqP(}Ne^^DKktqVa63@&IVAAu@Y??}BCPJBOlU<;EbH)nO**yN z=s1QZOWMKy?oY&FesgFhMk{<7@5PBZ@EDkaum;xUHxhvQB-Tv?XTn+p`gtpOGgnP9 zHy==F#r-2S%Bd;5*+c`jdiR=O~3_R`ZQWFqK&9s}esmP(` zALF{&uw(phpJ{L2@IDkAItQAMe+9w9DbYJU6&z~XxMiU$H5~=d-%%hH%+A+Grew3zG*OCok*tOoco2 z-!a)T4#p#0NQ(%N@vRi+K&4vnJ9BDnBV<5gmU-2~#-;D3tQk#*&r(`iujjA$HrDcb zC^S6_M}5~Eg7i?CR-OFDC5Yn4c{{PdNjpJVfq#aE%m8MXTVsZUoj%l!UMr}lWKm1MQM<=xelZgL`>=_+HVw1?UwpXVC7Dq9tI2U-6h##d#$ z#K3ZxMHHw4b7a@qBFuAfM@hn9*L`6NLsBG`JJ`rdh`>F(b$R}Nk7OJ&~%-{kD~Z@{WPm|rbY1MDVQYl z5+on7oz6zRqG8`w5_b#vWn&26X9BlPluZ@c#FmoJ112Y;3z7kcW!D?t-8I68ZpePsQt$dGeX5*+Qt&2 zv1^t7)mzu()LsnPq+eMqCBXO49#Tc@NEJiro`M&kDGCtq2UE@t+34NJbV@O}aA6|i zFeA9⪼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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index fd3c439..79f5d4a 100644 --- a/index.html +++ b/index.html @@ -26,6 +26,7 @@ state.preload = function() { this.addSpriteSheet('oneWay', './data/images/gfx64/st_oneway.png', 64, 64 ); this.addSpriteSheet('finishMarker', './data/images/gfx64/finish_marker.png', 64, 64 ); this.addSpriteSheet('button', './data/images/gfx64/button.png', 128, 64 ); + this.addSpriteSheet('teleport', './data/images/gfx64/st_spitter_idle.png', 64, 64); } state.velocityX = 64; @@ -35,7 +36,6 @@ state.create = function() { var level = levels[this.game.levelIndex - 1]; this.tilemap = new Kiwi.GameObjects.Tilemap.TileMap(this, 'level' + this.game.levelIndex.toString(), this.textures.base); - this.character = new Kiwi.GameObjects.Sprite(this, this.textures.character, 2*64 - 8, 64 - 8); // Hitbox is detecting collision in future step. // This is little bit counter intuitive. @@ -53,23 +53,29 @@ state.create = function() { this.finishMarker.animation.add('idle', [ 0, 1, 2, 3, 2, 1 ], 0.3, true); this.finishMarker.animation.play('idle', true); - // Load level specific data - level.create(this); - // Ground layer this.addChild(this.tilemap.layers[0]); - this.addChild(this.character); + // Load level specific data + level.create(this); + + this.addChild(this.finishMarker); // Walls layer this.addChild(this.tilemap.layers[1]); - this.addChild(this.finishMarker); // Add action objects this.addChild(this.redirectorGroup); - + + this.addChild(this.character); + // Sky layer this.addChild(this.tilemap.layers[2]); + + // Create collision layer + for(var i = 21; i < this.tilemap.tileTypes.length; i++) { + this.tilemap.tileTypes[i].allowCollisions = Kiwi.Components.ArcadePhysics.ANY; + } this.keyboard = this.game.input.keyboard; @@ -214,8 +220,13 @@ state.checkCollision = function () { for ( var i = 0; i < redirectors.length; i++ ) { var redirector = redirectors[i]; if (((Math.round(positionX/64) == Math.round(redirector.x/64) )) && (Math.round(positionY/64) == Math.round(redirector.y/64))) { - this.character.physics.velocity.x = redirector.affectVelocityX; - this.character.physics.velocity.y = redirector.affectVelocityY; + if (redirector.type == 'vector') { + this.character.physics.velocity.x = redirector.affectVelocityX; + this.character.physics.velocity.y = redirector.affectVelocityY; + } else if (redirector.type == 'teleport') { + this.character.x = redirector.affectedX - 8; + this.character.y = redirector.affectedY - 8; + } this.character.y = Math.round(this.character.y); this.character.x = Math.round(this.character.x); } diff --git a/js/app/level-01.js b/js/app/level-01.js index a26b972..fe50cd0 100644 --- a/js/app/level-01.js +++ b/js/app/level-01.js @@ -1,7 +1,6 @@ var level1 = {}; level1.create = function(context) { // Create redirector objects - addRedirector(context, 10, 2, 1, 0, 0); addRedirector(context, 10, 3, 0, 1, 6); @@ -14,11 +13,5 @@ level1.create = function(context) { // Define finish coordinates context.finishMarker.x = 6*64; context.finishMarker.y = 4*64; - - // Create collision layer - for(var i = 21; i < context.tilemap.tileTypes.length; i++) { - context.tilemap.tileTypes[i].allowCollisions = Kiwi.Components.ArcadePhysics.ANY; - } - } diff --git a/js/app/level-02.js b/js/app/level-02.js index 877afe3..8bb4940 100644 --- a/js/app/level-02.js +++ b/js/app/level-02.js @@ -1,8 +1,30 @@ var level2 = {}; level2.create = function(context) { - // Define finish coordinates context.finishMarker.x = 8*64; context.finishMarker.y = 2*64; + // Add teleport + var teleport = new Kiwi.GameObjects.Sprite(context, context.textures.teleport, 4*64, 2*64); + teleport.animation.add('idle', [ 0, 1, 2, 3 ], 0.3, true); + teleport.animation.play('idle', true); + teleport.type = 'teleport'; + teleport.affectedX = 9*64; + teleport.affectedY = 2*64; + context.redirectorGroup.addChild(teleport); + + // Add target teleport marker + var teleportTarget = new Kiwi.GameObjects.Sprite(context, context.textures.teleport, 9*64, 2*64); + teleportTarget.animation.add('idle', [ 3, 2, 1, 0 ], 0.3, true); + teleportTarget.animation.play('idle', true); + teleportTarget.type = 'teleport'; + teleportTarget.affectedX = 4*64; + teleportTarget.affectedY = 2*64; + context.redirectorGroup.addChild(teleportTarget); + + // Create redirector objects + addRedirector(context, 9, 1, -1, 0, 9); + addRedirector(context, 9, 3, 1, 0, 0); + addRedirector(context, 10, 2, 0, -1, 3); + } \ No newline at end of file diff --git a/js/app/level-tools.js b/js/app/level-tools.js index c1ef56c..4e2860c 100644 --- a/js/app/level-tools.js +++ b/js/app/level-tools.js @@ -3,6 +3,7 @@ */ function addRedirector(context, x, y, vectorX, vectorY, imageIndex) { var redirector = new Kiwi.GameObjects.Sprite(context, context.textures.oneWay, x*64, y*64); + redirector.type = 'vector'; redirector.affectVelocityX = context.velocityX * vectorX; redirector.affectVelocityY = context.velocityY * vectorY; redirector.cellIndex = imageIndex;