From 833960b3c8bfa667eeefcece1e1da08280a821b9 Mon Sep 17 00:00:00 2001 From: photonstorm Date: Mon, 3 Mar 2014 16:05:55 +0000 Subject: [PATCH] Animation.looped has been renamed to Animation.loop. It's a boolean you can toggle at run-time to turn on/off animation looping. A single Animation object now has 3 new events: onStart, onLoop and onComplete. Animation.loopCount holds the number of times the animation has looped since it last started. Animation.stop has a new parameter: dispatchComplete. If true it'll dispatch an Animation.onComplete event. --- README.md | 5 +- examples/animation/animation events.js | 69 ++++++++++++++ .../assets/pics/havoc-plastic_surgery.png | Bin 12058 -> 0 bytes examples/assets/pics/title_page.png | Bin 50073 -> 0 bytes examples/display/bitmapdata wobble.js | 5 +- examples/wip/animation events.js | 69 ++++++++++++++ examples/wip/tilemap put tile update.js | 89 ++++++++++++++++++ src/animation/Animation.js | 77 +++++++++++---- src/gameobjects/Events.js | 2 +- 9 files changed, 292 insertions(+), 24 deletions(-) create mode 100644 examples/animation/animation events.js delete mode 100644 examples/assets/pics/havoc-plastic_surgery.png delete mode 100644 examples/assets/pics/title_page.png create mode 100644 examples/wip/animation events.js create mode 100644 examples/wip/tilemap put tile update.js diff --git a/README.md b/README.md index 1cbf30b8..2993c770 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,7 @@ Significant API changes: * Game no longer pauses if you've forced orientation and change it, also doesn't resize a NO_SCALE game. * All the Debug methods have had the word 'render' removed from the start. So where you did `debug.renderSpriteInfo` before, it's now just `debug.spriteInfo`. * Debug methods that rendered geometry (Rectangle, Circle, Line, Point) have been merged into the single method: `Debug.geom`. +* Animation.looped has been renamed to Animation.loop. It's a boolean you can toggle at run-time to turn on/off animation looping. New features: @@ -136,7 +137,8 @@ New features: * Device.windowsPhone is now tested for. * The Debug panel now works in WebGL mode. Pay attention to the warning at the top of the Debug docs (feature request #499) * You can now create blank Tilemaps and then populate them with data later. - +* A single Animation object now has 3 new events: onStart, onLoop and onComplete. +* Animation.loopCount holds the number of times the animation has looped since it last started. Updates: @@ -163,6 +165,7 @@ Updates: * Tween no longer copies all the object properties into the `_valuesStart` object on creation. * Completely empty Tilemaps can now be created. This allows for dynamic map generation at runtime. * Keyboard.event now stores the most recent DOM keyboard event. +* Animation.stop has a new parameter: dispatchComplete. If true it'll dispatch an Animation.onComplete event. Bug Fixes: diff --git a/examples/animation/animation events.js b/examples/animation/animation events.js new file mode 100644 index 00000000..1d04dbfb --- /dev/null +++ b/examples/animation/animation events.js @@ -0,0 +1,69 @@ + +var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update }); + +function preload() { + + game.load.image('lazur', 'assets/pics/thorn_lazur.png'); + game.load.spritesheet('mummy', 'assets/sprites/metalslug_mummy37x45.png', 37, 45, 18); + +} + +var back; +var mummy; +var anim; +var loopText; + +function create() { + + game.stage.smoothed = false; + + back = game.add.image(0, -400, 'lazur'); + back.scale.set(2); + + mummy = game.add.sprite(200, 360, 'mummy', 5); + mummy.scale.set(4); + + anim = mummy.animations.add('walk'); + + anim.onStart.add(animationStarted, this); + anim.onLoop.add(animationLooped, this); + anim.onComplete.add(animationStopped, this); + + anim.play(10, true); + +} + +function animationStarted(sprite, animation) { + + game.add.text(32, 32, 'Animation started', { fill: 'white' }); + +} + +function animationLooped(sprite, animation) { + + if (animation.loopCount === 1) + { + loopText = game.add.text(32, 64, 'Animation looped', { fill: 'white' }); + } + else + { + loopText.text = 'Animation looped x2'; + animation.loop = false; + } + +} + +function animationStopped(sprite, animation) { + + game.add.text(32, 64+32, 'Animation stopped', { fill: 'white' }); + +} + +function update() { + + if (anim.isPlaying) + { + back.x -= 1; + } + +} \ No newline at end of file diff --git a/examples/assets/pics/havoc-plastic_surgery.png b/examples/assets/pics/havoc-plastic_surgery.png deleted file mode 100644 index 3c67930e177081f766552e40e5c8071fd32d2e54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12058 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

Em=t`6AYu5gkCtkG_p#=uqt{D(%_I7>enl+ zu(6Q#I4ot(OiZL0wrArhR`XlTFQTG1ie`$)1r1xLiebZp!nPFNSAFG$14cz}QpwCB z02umq#i{Ebd-|pQul2nB!oKHs>`(_hR1Ev&CNK~e=`b3FPoYjP_}Ga+GVQ%gW3Xg7 z!<^O^0F=(s{AA#~e60(vFFa>PFYl!u5i!!?v=~2>Ke?9Iid-#ESCCr{LL%*XcDo#V zY$8|Io*3y$35QClzlli-l~CrCvo<>!zYQMgjes+Z!|KqC=JBT6dh+` zEi(=xAmM!AO(8I=p~%Pum^hSQ@y;LFbZNQKkPTs&?R$DR~}Mw^{$7EH5gye(im22 zR`XET?b&GiMtUA~GxfGNOF0X_=0>$695y{`U{#5QeQR)u-zy?sS#mgP&cs1x7OH`1 za^ITj!j)S-x?#&X>eu=lVc7QNElGT{rww|(^X1(%FY=?8e$s$m3R%(E6-c5_1QKo; zz3OLB91;_YTn$PYh>0^Lgu^JCNut+@9#*YlC;g5kF-wRuv6h*I7}5c^^DCEr3N|W@ z>i}BjDF=q*wkN092Rq!+>?F=1MiGDgHO>D)K=QGRkIO%G{pL5@+5lIMT4mPcQOIi7 zqfevEoe$hW8@MuV`LlpDNb8)KSRATTgcnRWF)Shx5!0&xlA0;hapkujl&*4BeBF7ho&MVM!lDpC0gs@j%HxkVT{@=5@GL6HqIpH5dbj2 zKst@4?>b;dfCbbTp>i{Z;b2oRjJ{)nd~n|$nyo=gcA$;n=)#1Re`J=&) zg}pb{oJlH~Sp)zxZq4JdA-d{7oK24Y9~UYQ4krc<=y|b^gq&L3Hat!vN#y#HF%Lxz zLz;E3+3y9~FZkekKWtna8?+%N7P)EJP=GUWrsQx?bfhVYW^%ITMh(L{snZ{T)x9=3 zmJ|NoSaT+sWG4D)XMsE4UsrR+#*JYe;8hjXG`#db&C}e$?|wFn7tTJ$wi_-o{|Zwr zC%p(Ru{zcH*&Q=e2iiAmIfv{5o?OYf*n3%Ss($a?cl8d4PUkzfzZI#Cw#$ z6A@C&us=HYG3oyC1VjWzS*DI_Y+Ug%W?x=+oMgKxV=+Jp3?{ zCRec%D(oF#*tF{0I*7$XzkW<@3^NPpN~kzNRcW1sZXq;3sb9HIx>z-lyK1H8UsZ2F zFPRLhtA*82d*VqGFYg?mJocR{PEgx}iQz|wo!8de(JY7Nnk^%)=9w5&c)3-R%jr-z z8zeO>a~7RKCWg=(>ErC3+lTJF*$FEQ2ZU9{Fq4!J&Lox0EX)U%vl_!Xz`P9=ss4w4 z{kVKLmtqt(8Rp{A71=x?O$DGA_A^DE;qlT$OP=GwVK&b7y`ab+p6hF>sL9XHq4o&< zXfoqlY(`3Gb;0u5rr>!OEtURT==`w%m8r047(lLQ7wBz@kU5J^p-v3z-bf#3heLth zu&fA);UwTp0K-WjGYbYV6fcZt00~BNsL~tHIQ|oxKEVHOyWuAD=)Yk_i=Qd_EO~RC z6pp5$Bbw?AOu~4koomDnRVDhjv-xWYwDK0Jn5=93lu_jdhO^Q$tlA^!(P2kB%_DV^ z`^`#wG}9H!*d}vEcHYr2XVEECO{6FuXXyiz1?Yqowir$@XF_8*0Wz~t0MoJJ)b*Rs zIV}{1FZkGrU;Xy=s*FY|rsg`y`_<%R$+IuGuz#NqpglG7L%5}-5zDgk%8E*9 zGxV2tKSujq(D*RnldWhvr_XAWPNpkR$gmv_^mW&jF6$i|o1L51-a8g`tit;q7n1S_ z`Zm(|?9_Pce7EOtdUi=#X<=5*cwJ6aR%$AJX?ErNt505+Jw4Ife>AVVtu4Ce!OC5; zqOq!|%riSd=mnBzz3z1PvD%uNw+Du1r-nS^vl~x1#hshq+VTqF6Zx#%T6xCRk32ms z`=pxk_9Nnh@pPTgTUAOoh=y7=D~x-nG!<6SNJ zHI3s+0Th1o-fNvx_~}1R#DN&VxMg5;c|k!@ZaSeiI?im{kgHeUwHzd^uGj=PO8b1v&jow;)%mQd4eqgKUomwS~~99{;Hy*$}qr zC;Q@03}HAr&b;)Ww~%~0GAxUP00md zue7hcipyj;PG7zDjEx(id+*==%9}lHp;o9weaw4<61v8m<)VWOTYc1`=IC zPG#s8$@@NOjo}af-+hT9hT{Seac0N=y_Kqph}&jjkaDU7 zY#^+8^2C7Ocyfk`QPpFjWTyM2$3Y2rl2@HX7)}ive9l@`_tkG-f6t$O@E7fk{jZHU zjB2`rKN@aR-mA#Rp8vWQ{oF)%OHA{;>Y$Hqti0rh2mkO5^~%}*xsRzD6&j%7$*=uY z{E1OHbKnoR+SF5d>L%w7i^DpFD=5#$yIX8Hv-2m{#=5NJ?Vy#%rJxc-LU1HvoE;t#v6Y&b)cO!u-jRj(@7Nc^dAOBq?+%)HEwU7 z8;qRh`@dnPCvGHJ662gR>h1g@3*`1hkB-~is>Z&ZwA0;u1Tir#1b@{lIC(NOJYuadh>V0K#-usl49iRO#rWPzjIEiljQ>1q4p ztqCN?IcL0%*_OGyexj$d?$+$82L2?UfinqdsqwDX%;gOcac0qTO4$O#tz{p$GN}Pf%Y%G- zAEkYE_#5yxKs9JuCwN9@#-T#kNNAzB<%Yncffy*6LmsxytmO^I zdRnuVH<+90$j-+T)ly^*IOoiw=Zs779x0G;VGAbJI!#rJNFeqTDjs*GV}WpU#P)+&Lus@ z??e0KiC0-fYBMyInURT_^Ro+&PKs4cX%(lW#9eUC^F_Q=PIH!b&Ny%-nCuT0X%7s8gFc+-6fJUJw<|9~JM2I-L{4ATcEH2jp>` z8c}|@HKH~Z*o%ZS(aDTGXM}9{-vz`ZSOZ%IiUG6LCs%#yvlnkZ=d{wbrxYKTzbrd1 z(h#&-TUBWt68vh^gOr=<;cu6s6P@mD@p^q>6R|tJQjd$$IdWn>PS8Qhe?_0W?26A% z_4rbjg|C(fKpqh>&M9$Dj9NoP#Hh~=YpO2PZohSZ$;#nFyDd#QY!0h>hybt zf`EvKVM=EE#O5Rudw*_8N#RGoUw*~s9TLNJnmHp!fI`wU^RRvw>2SLsmh>Tsn0d`- zQ>XWEEBs_sm?ov)IWfofK8Z4OhXq?kAO067QmFDRRGX@Yb7FjZqmh}goYBEkQJ;7p zI8^9(*Hcgb>468I`O8E5r)KGMzV=_r@tX9ls%h!t-JH|b6YK*+N>Ze(!1{78s}Gfv z%MGs09uBji&z#ps$+gU9U#F;6dOj(#F(M*{C_z3KTG}AN&WWMgkb6y>vAGL5-xYQs zKqbb$PVzHTDs(;LoER#TB7xLIWuCIEJ|bekOt*wqYGr-Q0PK{Q=w!wrXOiJawePcg2HQ_xz4q4s_|`pt`ayAb ze&J++C59Qg*_rb^IYdP-AEbL3z0#bko0s^3{JEFa*$#o!G17{!e~B9gx2Gt^Olk#8 zEFW_2t?ew3Wp%UCR-~Gp6T?$*Q^dXEq!yw&fieIX7$Nc<^p6bm*>tCVso-e3^_xWaI2zMwn3Zd)ubKkD#wX0RF0CcVZht0 z&6l$cgC@kU$T`L^+l%rdr>S=Kbs`alNe-M7LzJka`GBta;kAI)bxe$?QwCQ&x^xDJ zvAGL5-{oEwM(L@<*w<+oxp7X6dzsGIw3E+q-b{Y}_(p$ud)UD+=fp%OGqwT~V2gb( zlPmxx48tETUn@R+V%YN?|1xw5vB#!{G`Vz%a>A_vv_T>Tqf532Oh`B?zVfp=S zr(#3(FhN?cZ?xg*vt}i=KO54f;y{vVCRW&C~JK;%%U9INU z7S}SuL%p`FR{m?9do^GBrpqnO8!wuwLNqFJ{R&LbWtwn%?CbQ`hW<4oVuTDG5%S?Z zqR(=nP#+(A2M-2jsyHLYB`rfZkY0&Hl^C15kgIovpEkq9XtwkOo6ydQafOcV*fbOJ zsk`oQ9>j7;Oq4QX#hE#{C;ZSOZL^PmD=7f%b~c$AuJ8WWw0j5B*R5Tttz8L-_D`fp zk2io`eXftxy7Z|u6}OCD#yqW#&^vh2KPR4TN9#xa-e)_)sg>8xtD%U);bw8Z{KF8Wx((YUDErV{qb255tF*_~ZT zK6hkCCP(})=;aQ6`Z_z|PC4oC)jFLMgB$5C(VHBx*IiDDN&A~Sef{l*&{RyDiCF4X z1IJfpzzyynlLx&Kn9zKPW&Qj1WY*+qrCOO*$~LpAbcsSU#FjhMXo zXMROmOV@aQfpAESPmv+r|4%Q<$tt8*24|?tlff;eerI)xxYUt|i4jqjBVnv)=ft2Y zK?Y+u_RSQ5R~dhqDX(>C<0NAci^q!IUsqFKRtRvW45kks8i%mr9D0~G>nP8i$FIf5 zp$=Q(-V~FwS@F<<7 zH^m9rCZc573RLTrhkc#m(aMBDl^FY%3fvWJzNY@u(?~%eQHTk{sIpqo9hBA5)14C& zb&kh5j1R?u7(*^3L}C~@glFk#V4!zRRXr~xpDNEpz~$tuN9StWY!zB)^M zD4f3TYu3H|wL!ga^LO^X{%2g}XNAg9(p7$$*5B@0BXeBQeEKWh#OpM)K{m;19 zd@FDl+tpuvisTz7^FRHtnHc*zecImzG0HhHAO05c86**5qSa*UglW67TH=5seHbAz zLHV*e*AbcH9mSQulU0e_dyg+O63r7Lr=b!d;t~w>Kb;FpPy8qUT_NBX zVm`e{N7{7Jga($)Kwk!rh#154dhWJTDyoPB>I?eNbC=eL-2Me6<;ZCqNhQYiuCtW8 zbYk59_=GwEAOD((v9D8qIbu{q#01QN6~Tl>&~{;r?Z}ACrWhB#228GPPRvTNit4|A+Yh{7HT()|LejRtq zb7@A(|NEsJ^oPW-@9FRP?)w6vw=}mfBQ-5zVoU(G8<5e3rrlAUM0qeVHg~xQ9&{JT z{^V_;x-i$5A5)15Q>O~NNQp6En3^M^wsXePh>1}X9#m=}B=($9J0`);WcGopN&{9g zeH%%|A$z&|{T8(fO9O@tM*zLj9txcL+tM=Eq{XF4XV3TcZ$v(zR5PF%u7o{+-kM_Z zVcuwnF`0QTca8`aRGiaW(W&ilTn^RrCyCusp( zm|w7BbvBgee!tqJuM--8N?{v=@od2AaqCVx)E_k798}V)HpU8@T=wN1A|L2n;A`jQ zXE!ue=1t{k{#l<96Jt`mdt2W@((bv>6f=#sPOmo@Z=vt?Daa=l;dth5{a2iv`I!(H z4qYdnUQ(m0spyD_-Qk=Vl_54A!tbwgUGecR(#I37xSY}&f@z(5pf+%r|>UM zY-)nvj?QR4N9=dab3Y>{h8z3L>wVAthqa6H&DW)F>5R0_$cSN{;G|TFtf7y4_BTch zKlj`4W-7@j#kZs4Ozeh?Bjbz%3@6tME(E}Y-prajgQ={V(*UR8E_*N=E(SqbF^2>` z2RnrbTIR$!lo<#NnXI_*i(NgP}cf&{d~rt3$OYFm<3^D-C0tIUXS{)fNC_kWo zOWSqEb*?inm3+`b@Q1DFPGO+h*jD=6z36-X2a$1RKz3>a9nQ`2Fm(?2t&$`RV!`iS zQ&q1@ygDGn&M+rle*;ZOa2;DNq!19ruY_}4r^M(*t^~2Xfh2fc9Wv(+p_T?#L;<~{ zeUJ3-^RLcT6t8(nBcYeZ!*Ifd17#v7#&!B%Yv_-Py(0H2iLMmu|GG-5BX~jbV^v~o z?ut>aK0P90ly?!#@p>KdM?|EFOO^>gp>K+mGZb^uNeTyGhjo@H{7EVRud1l7FDv93 zMTVlnA6C>X;g(D*M|1{v|^d73r36m*XiH=FGlo&LB!bH6{CEhQw_66Mhxy< zb(%=b3J3hbBYXoL!4FarxEDERe1m?K?l%g;N4CShAl^=3xHB1S=~RGr!jpPzb_8ZK z6cJCfV$gD!YL{Xv+k}@@vsnc^fn312KgiPd4R*K$qr0N;F0Q`%E6~8`atgO-<$W&n z9pnkChO~MxX!%!z!yG9wR6bx6miTi%{8xN`x;Om$2m`xoQ8=>*2g#`a?II?|=ac1~ z@<)?V2%(472l4UFOVP=UEY|6AGG?p1Y?dG7q=bRL_LgkFL!qZhE; z)g2fCGPt|uFcn+TglFLPI4#qBqinM((eF}wlvHU$-9mIMbJOw0o^9&C>w0#_402V$8hqeT=neLR91|0RTzyjmF$ti@ zC(X_hJtCD@VnkA!J_2H34vW6nq|z-ku>WO!zVMu(6xJ+{1AyW5^6EcAFHUIom1+sA z14yiLq48F3`KTGpW`x@Xs3{mwT&2M-LNBO!L*4e_T-FA`s}bgkQh>vW5yayA&)Mti%+ zA2~p8>a$ye;6j7h&R#^#DtgUPXht}CDDIMi=6EZ__zvu_r)QCq|Ml^jy1Gz_8SILv zHs4FX7c~q?tuoXV>AM6yj$KWrGh9n8ej<;CsER~p0=OM=7Q`Y`D4ZMy_>*t|!vSW! zM5;+0<23}U3^C+~Z~0+O)e5>!G3ro{G1n7-@sL+5@&@`;(JIzCxE8>$U;U~*!rpxc z&0BM+Z^ycq=mC-$x`ibI=e}=#h=}q1&yV$~@U|o^W{!@Z-)_f$sl-5wMpT<`#~-v3 z|Nf!EZ4=JC@8AySHK;P``=751Vt)J~y^TN&lNz@iZ2<)0gm9?JjQx%D`cCGCFeYhG zJ#?KUhd%C25({AC))^-A(k5Po^UjBEQ*CVX1P`9DMVPSwc_CQl6S-IRe??WHa>=!B ziQ&NAcp{^bZDx9@%$htEx1bP;ciq~RG!0A4kU^}S+CFzN{Q6PR298K4n6Z!6;(pV&Ntr@j63^tS{5qOv|Nk-l`OAn&rb%uLf)vH6+fRegH zH7=eQOpI2%+QkHmI;&#K7S3PaF5ZY9I=nwfW`@V@ZUjS!6?pyO{dQ2mtKogYXWW&Y zXIJNNH}i+&Fe#=|ipcY-pcVP{Q7H8oTkbnfbJMuduI@JvWv$`K(gt7J%Jm?x2J*2} z^07(?S#hx0qhIk+0pD<-=QB)-)y22SF`I?AEM5_08QcA0406 z4&ARc{gpbR<9qpjorYom*6jv50|Op5B4TKH3a{gUW}k@|ZRgK?AN)#y;Gu52_F`Tc{tZjH`4&IrMwxl!kB%y&+rwJX zlEc13FKdS!wW%tHNih=(Qm&#`RlgjX;!z?FS#|Yv!WR`7mSq4NfnkYWhK-6|W1x$S zmYpx_C&ElxE^;+;Kv$6SzkXt9=nM7JUYWcR7r~OlZ$y>an-Hlmym4LMLnA-Gp{bIb zVXgU(s>Jxg*6r^{eEK;zA;ZHa{$YMK!6sSf|}iEr8a>7b546j;aaE;+p?!u)-xJ%bpbQIf&s(2(YmURFsvJ%IT>(< z0~i)^vpg_%6_6^TlckDul%Z4qDe%x^kQb*+)B0W#QSk7(0J18%BLgS>)Vr!!ywx2Q@R>CrOtL$cibY7c%{ zYktC}i`B&hWsuff97KTO*ma|zIpm{zMAGu@Xhsb^uc%M=`U!BU0*f*rrtw^-?PX@2 z`9J}X0b;^%`yDOwebH2C!x?epMboCeuOt@0uCHABDYA8;ehqFaOTXpNZm7vv(8JH} zn1O3b#;tlgeuARr$(3)t_(Jc%VAP~9FDpIaL#Kyw&Kb!D_nX#5s?)h?+8J{||95BT2&f!Z;+;Cqsgy< zfn-C0%%d*%th=(J!rbE7`D3HwW1)DubXDJbdONlnc=fsuLE(_c$RoYb zoNyW|j!%KkBz;Q-NbwqcU{wj@96zZEKT!eB$%{t5ZTkytU4zNP3usy(w&8>ifFYxU zy$AMpceeM(TK$S3qSte5`l#3I%FfQ5o1J|(p;voPQOEeu$ANjVE@@z~t44%;$VUBg5ruT@cBgZ2X*T0`gK3MTl5=4 zDFJhXf%|ohn!i1KZOyLwChr|z!}-P!f0)Bpg0^@O$--HmOsZWojndZ;f zD(ind9?*>=XIN(R){!!kNDqa)U)u79$9sTV9twuGq;0MY2d`={qZj3=!d=~O(tt1$ z&j0klgIpD_-F0d6fz)=;RbMA^{}ru$-d!hhwHRGNu3w>BkZbdn$z5NkwHXIgx%Nvv+Jq>jt zcg<6BbHI+FGSPj8iV1x(0G` z0%761cWF$O=!P3+|Mrr_fBGFFchv<+dCKMgF@MMPDteQF7(+A7{p#$=BW%yBBn-f#Iq0+)1`5$j@G@F)+UoAL!cW<8G7q+S=jg$ey*%OwZgMar%TLx^uSSgFT#NA;x(#;a>EK zvG@HFz!@`_<`eD%17JWYtY2tdC{G^pVYSJd=@>%L1lrNQM>rzY)gyM%sIXF@M@c?+eQkVmuS9PxnbVnfKbtsu0-=$#E54g-#Hf_m-|lT|rIXkNu@cG| zpA;1zy=mfuSTqfoK*cL#Id%n@QH)9p-irg*=@zoC$;<|rq0D&?D$>2YnJbKEpx2@{ z^kjiBLk+kS&s_gXtuAvx#CYzwBc7BPqM*r4jQ#C=62llz;y8ocExY?931Yc6ZQZIV zD;5m%G0da8?DR6!>6}hD1g(B#3_7`V?J2-E{fatOA2{bXkI%Ptq)7bCJ@s7N9pDZm z|M_zXCr0l_G;Q|w?=5L!=yu!~3)&LP8P8MC;nnB`Jx|@0_$ahl!3JR5E6xkbUFwLD zid!B%;(xWZ+6HaS{u2LQ9MyUx3{{COV9Q;H_Idj?Utl?LduwXL3Tbz(aJlB=E~f1% z^(*GvI+KBzl!j_=Yn!`a#k+tQx;@_Qade;tSou+s*Ng8T47BP^uK<>INLQD4=m%;HAF3$Oi`gKC`vSx1o4ULrxp@DVOQ0}Z;0QRAaqb7*E)Nn4(=ECrEJ##z;Y>JyQySm*K02eVDm1xQ#(^=9 zVGl}LON7+b;yczS)+ez`-1)+xz55PkTvNN(}OpqFh$0xC_h?u=l@vbfOXv&d~(#Yv;C6yp|ias~`Kt0i6u= z&X>-@6o*yJDw@q~URq3vbhSFUTK0vN-nLHU0UNKON-|pC@rcfm=X`#vS9GEk>J&M1 zN^3xc9mqp=u2xS3F?6GS<&-SR^BY&4R6jqi;QL#>?Q>}jb7AY`8kR0GanQidiAigy z5GIM{;Y3%`{2~;cs3;6i@R6#b)VOz~mdT!~igR4#*;KeiopB{M9 z?rmIN*3vsL`HP>0B5uBIr+QxeyI*PAoQyoRxwN?y!N;CZd0N9Vk7$_XWB>AhoU>zI z-hvxpS=ra0+E9tkTeM}H*vxI_$@>ii>+#Yrd>MezwAu6q&C{l(Hk6006aD>?CMFJ1 zCFjJD4LmRW`KsYhe{NA}*r_GKp=)4u2T4PWik2k-ihPC9tC{wTrjcG&(J0A^*Zk~L z*RIp|e{?$e#={Bt^tN_}%Bk;6t6wJVz{s2{+(I|n)Q?<-Kp^7X$UUvQLREO|=QpLG zuaPOEe$Kv5stvh6ZnQ*+iH8sDoEZLBdp91bx{~xy;Q-i3>(UxSMlwgUcnXISQeMM$ zG7m42@qAowrmD9CmifN)e$CgPp0(kOGYnh#Xr^^hxN-Y~4+;RgJSyqwjpdr=36X1_ z)?QJjp_~f;_g6pt+r6)Arrq9oSK6Q5bD!p)vJbIHZ>UUdu&LieVx3lBG1sPVr&?FK ztSC2~cb1<#HuKuv7D@J;Gn&PWB2QaST74zexe#JPc7m}d20Wi@JsjKF3yz5)nSl+Q z-njhT31EYvOP?t-d>mLE{xNTeMaH%oou-jtpqD>}rtbEt0+lvx4jAMecAsK$X-;>y z@wD~9$w97mA2h3EYEU1$1I#|N?j(b0fL15r^R#uRHI&&3k=O5!E%V43bs4E?lhfh@ zJ~@K|!@RfFd>b52N3TFQ6tHQ4B3%$Mp$)&76N3Wjjg>LQuybPAo(I~O-TU9{LgRMi zic_u4wQ6a>i;L*WoS&cF8!kyg0K3)Q&nfZ1lI7>f=wDjrU^a~DqYXT-gNE4RgR&${o z6N8czyMi#VQu7SPXzPEQByAh{U5uPHGjm2Y^ymumvD+RconQ3DOOwk7HjMfT*!1h(sk%*c)X(6( zEG_M1^OkyKcr%7~?LFvsu6j8rr3PcHLN&VOoY7d!7irxU&}(qT)jq`~Z$#fb+tTZH zt+J1!po5rg?aOE=JElf@{a+`Rc^8xFY11+rwb@qt*o+q-oE5MsN6Cc~6Do)mQ)0mL z+17q49IGIfLQMbluT}iuQ}*RE8;e5xGADnUQyh4(NaVpx)B3M}TD2;Rzxb))+wMyW z01LC({~`%i1}DEq2n83nBLJ(A1r1Rq&Y6YY1Y2*J!Zx zMiI1VKIKa`Z&mk)e>GpE;GE%!CJpTIKdadO5hYiC!Y{0S92LtMEK!$3(~;uxe>}Yn zWPjDB&b&=$l3dQT99bYSp^i8Zv-}5FWj2=0w#0D1{=VyO#8U+R+WK6sFv75i2l1KD zhqm3HcoW(XaApkCb&56_(5r@*=zBtz!@P`7%EeNoUKgQ-Y-ai&W&WI0MfLL|4L$dh5kYHem;KXq($h6R|{unX`rCH*6f+T&^n=nb>{O#V?35V+T zv=p_59;S?jQNNQF&^SS^4JM(&vicsg|n?k zh|c^?ryhdc;o)jiDeGyxgX8nWL@*-oHwXQm7%pdjUE#L+4N>-W&iVagc zXytJ3)Jm$^pobYzDq+;4qs_7!N-`T(PPZNil~b8%(YoQ?FzSGG`EDqj*6$sf30*&O zd-bAXc&_D0c4P5$%Mlo#_I1v*_S2&mmzZGNB<93Wr%B~wD!cvL{=DqU3#Ju1q4qNy zPn~HQF4!b;5Tj{6I!7)GoSG>L7fHcrlGOy|N4EXNUbM!yqr&5oC<;xX9Ydst6f&vD zP-8p>PdMz8NLQiD>eAaC10QGz#M&j~jHa3OIsZ4fb0Yy{7#@Kkw7V3rW zLT*#P7QBJ5?p_Y28&omZDJpErM{ZwdR%6jj>tL2JK79)$#wNTMYhrk)1|?%HzQCJG zr{CrmS44CQ+;Dm6969|;g~h*CdqG!Rb-ul5Ma1oR065gVD?WI|zltlix(Vm%SQM-4 zP%g1LXv7t&C+5e|k=;-*Q1=-ukBwDav1B$-Vp#8dV@ZFqF$xl?Pyq-&Iz#uEpl!z_}Gbr ze6qmVk0s-oKi9&!3QI#sOjXO4)4%9IubBhBw+_lRYv5yHsGL`m&9)A52%3|nt?m!f z&Qr>1%D1WCCB)Rr$!s=T)(H#3NuAk3wuTl+Oz0?d%!vWdxv--d2n#+A-}?B-_FbSe zTfuO)u;GV@B$vSO5MA+Oc!*w2WnJlcbxt@#a_EHH@$i9J`KXdjv0sB$)$*h;6)P*kBrkr@bKQ8UV zCbFH^xpaw1mGc~D!T+ZG+{WxpuYb|6)^swg2=gn9ma$xa6I+kZwT!?1^+y`MbQ%@Q z^#{6@rVn`-ZZVN0m{Ywu`^e*C_Agk_l#N^rqcr9uUIX)&6AZXwl}j2`U1q3;ov1Kj z8zBG8x|5J7zD2k55<*hZJU+}r%H|bFp~78-jXBdT!^l&$dGKzkWi(Wd0!UOiWH?7b zFWVjInun83{RNT+N~^!LYOZCjq;U>;rWQza1$nwAQgLIp^Ey+d;jmb69iT2AbAw-p>r2t^>xo6!}pl!C`w5qh>V?ssa3jQ7R%;WZxO9IQO@$YzAA?<@nz~(J7ao}X#P|WVy z@XdAeBU7m^FA^RRw*EE$urkdxkK`ShFKL>eYMsw5o~J8FIL8%S$FKOe<997iXr=_R zmnbpdd3H%!QB#h0WU9C+XR38Hw>Z@~VL8RAxCJ-z<0wtGj-lyMbNA!zAO_DG-ZcP8 zpo=LkFUsSgD25u;8`b25q&;7M+nzHOA1KCC@GQJ3h)D_)S_~#>2l-qpk>S}=2wqx12@vgtw6C|8@VmE$^H1hq24JW|@2HwHd5 z=Gkz`h9oDPfilP2jmc*vUIUlprll5SkUA13^`y{yo}p1(p?~Rwlr1Yp=u-NZG%#{j zvrxi&THl_PLn+8%PH)JqII(hBW=a|Eg{H;DOIBAgdT~20q6TP1s*`RcolNL$eMba% zkK0_GqWO?=iqmFCW=a}!Y;x8fhj$%e4UFF5u>)^t{x3GAr)AUo3K5YS_^fZPnP?s_ zYs&UWB@^~3shYRz@!t92Y03}%PS20E1ai7!Uk~MT3h^L&sS`7>dyq(SP8gTLy_8cu z)RaV0+v8nKOiocMF5+>y#cAU$N0Fm2%PFBfu z*HH@UkWa`9-$}}OrZg!}n$e+7z@%SkrZfeyc!CGe+rQ7ptCt9k(6`WmJd2AJIM+#I zJnBSFIx3qo(_QnFmNjKfw2X(!(=;z9)ifaT=)Kf6_W@Pl@+?0tbE;(wxlR2s%K3!I zevcTH21*k$dX!jVGF|hOAdm^yz^?b#)zAVO+D?%}JA`VwNNWZOSF|9WfXDW*VS)sm zSdJkDjPUL^saiw$3I;7rgrG-Lg|sW>)*r7gZOj>LITrS<2Ae1O{DqrE1bfrgtxPjs z&5Yg`_U}V}-CO6=zeCNFP97AC1H_j$Wj}b$?)QiZ)u4$brc{ZH{^Fu%6F-qdMK42F z9c$S;c#xGd&(<)^VPfS;8k^Cp4hZo{sO|Cux~2l?BF~%)R5fJ`G>=y`We+ILY5i8F zi4AIx!yT6T?o_O{$urO_ryn(?@3^_`gv}*!Yl$-ddo6Fu=$FoC(h@T+)nHu3G`K+% zNQ~r+u-=no_}VRZLKSk%K^+J*rOcW<-pP@F<+)a>X-)8;VI-UbsQL)7X{Mwl5x514 zcW~bx){Wd>(994jmZ{CxG-Zr6Pasd%yf%57HqXgC`$}w`Au&vNO2~HID;J0c+2L%r@pZ@$)kbX?et>o-^8Uev&aFS@!iKJC%dJbmjwzpY+LDq;*xfC5!<3FM$b`5X=U z$n0riD5Mz{zP9_Z>G-gsw|Q!LQx;z_a3+xerp-_}bfm(Pg`139gTxzDvAvzl=-r@< z_o~;;W6mH6IvM5ZyC*+<=w!Nn|BYf~sHbJRsxcF}?jg%_l&XFL6Hw`uAmwMP3Y`#Ht!BuH%NSSQ$~054068mjSF8h-!?Pv3>yO&whEwPhRCy8lJO67mqXulzTGDet zo!9t9kXq%XNBa!`rdYapzPBbnXw>#jA7S{kE#(FwaPl~NA*gB0=xUik9=Ot!+0{H< zBk%gB3*QKJV^R@A4WUpnO*iWQ$~uud$8bdNa^H=eugtB-$-Os@#qKFK90LJb(i~!D z@`NXKU}Vq$T@|RDsE}y)}ZAK%jhl9tBxUYxQk12Hz8-hc>i$Ik-DY~x1`%G zqLJwPr;*d5Z8}FzzryUSQ}juYNoIv!5!KAesDEEYezq7V0P?AZh#rSLRr7^Phg+r_ z8q<-dX+BDQ%~Op{>BwyWlWfG`SBh^@qFaztB~&N!P|qd8qJ9?{&h-BA#?hEQB^1Y! z3cUhlDXG5nl&o~OcXE0XDNRl!oAXSir)49hRHkOk<&90iGt{rpFXPU&o(u5U^o8}?8$ z6pAY|b>hlANFN{e;2c+qirx4X|8~gXkeb>uCGu`03}npuEsnJG)ZBusVOab2>WWsc%g0ZV_c@V%c?<9em-j@C(zDikQFLGk|pQ zXG-ZV+zuo(G^HOM_UQk%OrvJhZ~5FP+L7PowO5Xo7H7r!DdyVlzOftp*OKf=9UULj z#2Tz37}COqlo4ro#XM399awfilPX$V;Sc<&U-}cys+Ol-OwrQKb}|p=sJS{w%Tu^i z^Eq9UU!ik%@YmBr#nR35z(^0*6c_c39wl2kqQ{xZv*MLP7}E()a+vNqN*66> zAaVd%#RK?^z0t0IXt|q)m4SGefSAw8XGs zCWZgLjv)b)&(NLB~8wBQ8^hNn}7P_UNhHINh*y~ePdf>`9FU{!W8 zdWo4)qgQh#ril_|uhpZy{=pl|b1gVG=xP6sbwhtpHCX1#8tbcu0xiKU27kxMLvRSZ5sd~rqdFZ3a|nM5Bxr+MT?Jkh^} z0BzYrt}-RnoepgHDzD%!oG^4#DpScn#|hO&Pp7di^0eXH5*erp&Mo=C24V>LM5-CR z$jSd_WP%$b)2U>nr1^Jnz=_N21y-43bAHE`I4QjDlq`T2c|_<<$l;R+apDQPrO)gQ z79`F8Ap^^EP5IJ+;h~zTp8q|LI_)Y^Sy<3FI!-4@aMO-Xj^ZRGwYaG~4?iJ)wY`hZ zQ_bBNqzbk)=?Zq+B)B~^yu>9*`IN3bg%;VemL`>`=Bf%+Bh15x#>=!)6{rRkYMykh z8u0USCqYsFU_ccM3cKL+?lGA9s7hU^=!Bt`Q`2N`pjTNDX|T7=^zg5$O>T)^)%!I- zm)OeYw83&VKz(T;)4i~}ydhu~DhTI|%|{!SB9iH($3NAA!OZ6bb-N9`XmHpdf@-*R zU}VrfOwGtNOwUw7LQ4ppYsFA{GE``dRyCVHTx6a%%CEy9Ey{%wR9uhMKej^5e&BX;)LIeB3SfNme4hL$kfLXqv)I* zU_Z@AmXNGO>St1U&b|KI-KOhqt8<^TC%!9(sonm#gUkPdZskqY>u`z5NyhR21Q-BC W?^LL;v^1&!0000|Array.)} frames - An array of numbers or strings indicating which frames to play in which order. * @param {number} delay - The time between each frame of the animation, given in ms. -* @param {boolean} looped - Should this animation loop or play through once. +* @param {boolean} loop - Should this animation loop when it reaches the end or play through once. */ -Phaser.Animation = function (game, parent, name, frameData, frames, delay, looped) { +Phaser.Animation = function (game, parent, name, frameData, frames, delay, loop) { /** * @property {Phaser.Game} game - A reference to the currently running Game. @@ -55,9 +55,14 @@ Phaser.Animation = function (game, parent, name, frameData, frames, delay, loope this.delay = 1000 / delay; /** - * @property {boolean} looped - The loop state of the Animation. + * @property {boolean} loop - The loop state of the Animation. */ - this.looped = looped; + this.loop = loop; + + /** + * @property {number} loopCount - The number of times the animation has looped since it was last started. + */ + this.loopCount = 0; /** * @property {boolean} killOnComplete - Should the parent of this Animation be killed when the animation completes? @@ -116,9 +121,26 @@ Phaser.Animation = function (game, parent, name, frameData, frames, delay, loope */ this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]); + /** + * @property {Phaser.Signal} onStart - This event is dispatched when this Animation starts playback. + */ + this.onStart = new Phaser.Signal(); + + /** + * @property {Phaser.Signal} onComplete - This event is dispatched when this Animation completes playback. If the animation is set to loop this is never fired, listen for onAnimationLoop instead. + */ + this.onComplete = new Phaser.Signal(); + + /** + * @property {Phaser.Signal} onLoop - This event is dispatched when this Animation loops. + */ + this.onLoop = new Phaser.Signal(); + // Set-up some event listeners this.game.onPause.add(this.onPause, this); this.game.onResume.add(this.onResume, this); + + console.log('animation created', this); }; @@ -145,7 +167,7 @@ Phaser.Animation.prototype = { if (typeof loop === 'boolean') { // If they set a new loop value then use it, otherwise use the one set on creation - this.looped = loop; + this.loop = loop; } if (typeof killOnComplete !== 'undefined') @@ -157,6 +179,7 @@ Phaser.Animation.prototype = { this.isPlaying = true; this.isFinished = false; this.paused = false; + this.loopCount = 0; this._timeLastFrame = this.game.time.now; this._timeNextFrame = this.game.time.now + this.delay; @@ -173,10 +196,8 @@ Phaser.Animation.prototype = { this._parent.tilingTexture = false; } - if (this._parent.events) - { - this._parent.events.onAnimationStart.dispatch(this._parent, this); - } + this._parent.events.onAnimationStart.dispatch(this._parent, this); + this.onStart.dispatch(this._parent, this); return this; @@ -193,6 +214,7 @@ Phaser.Animation.prototype = { this.isPlaying = true; this.isFinished = false; this.paused = false; + this.loopCount = 0; this._timeLastFrame = this.game.time.now; this._timeNextFrame = this.game.time.now + this.delay; @@ -201,18 +223,23 @@ Phaser.Animation.prototype = { this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]); + this.onStart.dispatch(this._parent, this); + }, /** * Stops playback of this animation and set it to a finished state. If a resetFrame is provided it will stop playback and set frame to the first in the animation. + * If `dispatchComplete` is true it will dispatch the complete events, otherwise they'll be ignored. * * @method Phaser.Animation#stop * @memberof Phaser.Animation * @param {boolean} [resetFrame=false] - If true after the animation stops the currentFrame value will be set to the first frame in this animation. + * @param {boolean} [dispatchComplete=false] - Dispatch the Animation.onComplete and parent.onAnimationComplete events? */ - stop: function (resetFrame) { + stop: function (resetFrame, dispatchComplete) { if (typeof resetFrame === 'undefined') { resetFrame = false; } + if (typeof dispatchComplete === 'undefined') { dispatchComplete = false; } this.isPlaying = false; this.isFinished = true; @@ -223,6 +250,12 @@ Phaser.Animation.prototype = { this.currentFrame = this._frameData.getFrame(this._frames[0]); } + if (dispatchComplete) + { + this._parent.events.onAnimationComplete.dispatch(this._parent, this); + this.onComplete.dispatch(this._parent, this); + } + }, /** @@ -292,7 +325,7 @@ Phaser.Animation.prototype = { if (this._frameIndex >= this._frames.length) { - if (this.looped) + if (this.loop) { this._frameIndex %= this._frames.length; this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]); @@ -308,11 +341,13 @@ Phaser.Animation.prototype = { } } + this.loopCount++; this._parent.events.onAnimationLoop.dispatch(this._parent, this); + this.onLoop.dispatch(this._parent, this); } else { - this.onComplete(); + this.complete(); } } else @@ -353,27 +388,31 @@ Phaser.Animation.prototype = { this.currentFrame = null; this.isPlaying = false; + this.onStart.destroy(); + this.onLoop.destroy(); + this.onComplete.destroy(); + this.game.onPause.remove(this.onPause, this); this.game.onResume.remove(this.onResume, this); }, /** - * Called internally when the animation finishes playback. Sets the isPlaying and isFinished states and dispatches the onAnimationComplete event if it exists on the parent. + * Called internally when the animation finishes playback. + * Sets the isPlaying and isFinished states and dispatches the onAnimationComplete event if it exists on the parent and local onComplete event. * - * @method Phaser.Animation#onComplete + * @method Phaser.Animation#complete * @memberof Phaser.Animation */ - onComplete: function () { + complete: function () { this.isPlaying = false; this.isFinished = true; this.paused = false; - if (this._parent.events) - { - this._parent.events.onAnimationComplete.dispatch(this._parent, this); - } + this._parent.events.onAnimationComplete.dispatch(this._parent, this); + + this.onComplete.dispatch(this._parent, this); if (this.killOnComplete) { diff --git a/src/gameobjects/Events.js b/src/gameobjects/Events.js index d45d577a..89d7f690 100644 --- a/src/gameobjects/Events.js +++ b/src/gameobjects/Events.js @@ -11,7 +11,7 @@ * * For example to tell when a Sprite has been added to a new group: * -* ```sprite.events.onAddedToGroup.add(yourFunction, this);``` +* `sprite.events.onAddedToGroup.add(yourFunction, this);` * * Where `yourFunction` is the function you want called when this event occurs. *