UNPKG

@smoud/tiny

Version:

Fast and tiny JavaScript library for HTML5 game and playable ads creation.

1 lines 27.4 kB
!function(){var t={847:function(){Date.now||(Date.now=function(){return(new Date).getTime()}),'undefined'==typeof Float32Array&&(window.Float32Array=Array,window.Uint16Array=Array),void 0===Object.assign&&(Object.assign=function(t){'use strict';if(null==t)throw new TypeError('Cannot convert undefined or null to object');for(var i=Object(t),e=1;e<arguments.length;e++){var s=arguments[e];if(null!=s)for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(i[n]=s[n])}return i})}},i={};function e(s){var n=i[s];if(void 0!==n)return n.exports;var h=i[s]={exports:{}};return t[s](h,h.exports,e),h.exports}!function(){"use strict";e(847);var t=function(t,i,e){this.width=t,this.height=i,this.canvas=document.createElement('canvas'),this.context=this.canvas.getContext('2d',e),this.canvas.width=t,this.canvas.height=i};function i(){this.a=[],this.n=0}t.prototype.constructor=t,t.prototype.clear=function(){this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height)},t.prototype.resize=function(t,i){this.width=this.canvas.width=t,this.height=this.canvas.height=i};var s={call:function(t){t&&(t=t.prototype||t,s.mixin(t))},mixin:function(t){const e={};function s(t,s,n,h){var r=e[t];r||(r=e[t]=new i),r.a.push(s,n||null,h||!1),r.n+=3}t.once=function(t,i,e){s(t,i,e,!0)},t.on=s,t.off=function(t,i,s){if(e[t]){var n=e[t].a;if(i)if(s)for(h=0;h<n.length;h+=3)n[h]==i&&n[h+1]==s&&(n.splice(h,3),h-=3);else for(var h=0;h<n.length;h+=3)n[h]==i&&(n.splice(h,3),h-=3);else n.length=0;0==n.length&&delete e[t]}},t.emit=function(t,i,s,n){var h=e[t];if(h){var r=h.a;h.n=0;for(var a,o,u=arguments.length,l=0;l<r.length-h.n;l+=3)a=r[l],o=r[l+1],r[l+2]&&(r.splice(l,3),l-=3),u<=1?a.call(o):2==u?a.call(o,i):3==u?a.call(o,i,s):a.call(o,i,s,n);0==r.length&&delete e[t]}}}},n=0;var h=Math.PI/180,r=180/Math.PI,a={distance:function(t,i,e,s){var n=t-e,h=i-s;return Math.sqrt(n*n+h*h)},clamp:function(t,i,e){return Math.max(i,Math.min(e,t))},degToRad:function(t){return t*h},radToDeg:function(t){return t*r},isPow2:function(t){return!(t&t-1||!t)},getNextPow2:function(t){if(t>0&&0==(t&t-1))return t;for(var i=1;i<t;)i<<=1;return i}};function o(t,i,e){return this.r=1,this.g=1,this.b=1,this.a=1,this.int=16777215,void 0===i&&void 0===e?this.set(t):this.setRGB(t,i,e)}Object.assign(o.prototype,{set:function(t){return t&&'number'==typeof t.int?this.copy(t):'number'==typeof t?this.setHex(t):'string'==typeof t&&this.setStyle(t),this},refresh:function(){return this.int=(255*this.r<<16)+(255*this.g<<8)+(255*this.b|0),this},setHex:function(t){return t|=0,this.int=t,this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this},setRGB:function(t,i,e){return this.r=t,this.g=i,this.b=e,this.refresh()},setStyle:function(t){var i=t.length;if(4===i){var e=t.charAt(1),s=t.charAt(2),n=t.charAt(3);return this.setHex(+('0x'+e+e+s+s+n+n))}return 7===i?this.setHex(+t.replace('#','0x')):this},copy:function(t){return this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a,this.refresh()},toStyle(){return'#'+('00000'+this.int.toString(16)).slice(-6)},multiply:function(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this.refresh()},toArray:function(t,i){return void 0===t&&(t=[]),void 0===i&&(i=0),t[i]=this.r,t[i+1]=this.g,t[i+2]=this.b,t}}),o.WHITE=new o;var u=function(t,i){this.x=t||0,this.y=i||0};u.prototype={set:function(t,i){return this.x=t||0,this.y=i||(0!==i?this.x:0),this},subVectors:function(t,i){return this.x=t.x-i.x,this.y=t.y-i.y,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this},copy:function(t){return this.x=t.x,this.y=t.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this}};var l=function(){this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0};l.prototype.fromArray=function(t){this.a=t[0],this.b=t[1],this.c=t[3],this.d=t[4],this.tx=t[2],this.ty=t[5]},l.prototype.toArray=function(t){this.array||(this.array=new Float32Array(9));var i=this.array;return t?(i[0]=this.a,i[1]=this.b,i[2]=0,i[3]=this.c,i[4]=this.d,i[5]=0,i[6]=this.tx,i[7]=this.ty,i[8]=1):(i[0]=this.a,i[1]=this.c,i[2]=this.tx,i[3]=this.b,i[4]=this.d,i[5]=this.ty,i[6]=0,i[7]=0,i[8]=1),i},l.prototype.apply=function(t,i){i=i||new u;var e=t.x,s=t.y;return i.x=this.a*e+this.c*s+this.tx,i.y=this.b*e+this.d*s+this.ty,i},l.prototype.applyInverse=function(t,i){i=i||new u;var e=1/(this.a*this.d+this.c*-this.b),s=t.x,n=t.y;return i.x=this.d*e*s+-this.c*e*n+(this.ty*this.c-this.tx*this.d)*e,i.y=this.a*e*n+-this.b*e*s+(-this.ty*this.a+this.tx*this.b)*e,i},l.prototype.translate=function(t,i){return this.tx+=t,this.ty+=i,this},l.prototype.scale=function(t,i){return this.a*=t,this.d*=i,this.c*=t,this.b*=i,this.tx*=t,this.ty*=i,this},l.prototype.rotate=function(t){var i=Math.cos(t),e=Math.sin(t),s=this.a,n=this.c,h=this.tx;return this.a=s*i-this.b*e,this.b=s*e+this.b*i,this.c=n*i-this.d*e,this.d=n*e+this.d*i,this.tx=h*i-this.ty*e,this.ty=h*e+this.ty*i,this},l.prototype.append=function(t){var i=this.a,e=this.b,s=this.c,n=this.d;return this.a=t.a*i+t.b*s,this.b=t.a*e+t.b*n,this.c=t.c*i+t.d*s,this.d=t.c*e+t.d*n,this.tx=t.tx*i+t.ty*s+this.tx,this.ty=t.tx*e+t.ty*n+this.ty,this},l.prototype.identity=function(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this};new l;const c={POLY:0,RECT:1,CIRC:2,ELIP:3,RREC:4};var d={VERSION:'3.0.3',CanvasBuffer:t,EventEmitter:s,Math:a,Mat3:l,Vec2:u,Color:o};Object.assign(d,{NORMAL:0,ADD:1,MULTIPLY:2,SCREEN:3,OVERLAY:4,DARKEN:5,LIGHTEN:6,COLOR_DODGE:7,COLOR_BURN:8,HARD_LIGHT:9,SOFT_LIGHT:10,DIFFERENCE:11,EXCLUSION:12,HUE:13,SATURATION:14,COLOR:15,LUMINOSITY:16},{LINEAR:0,NEAREST:1},c),window.Tiny=d;var p=[];function f(t,i){p.push({name:t,_class_:i})}var y,v,m,_,g,w=function(){},b=function(t){this.callbackContext=this,this.state=0,this.timeScale=1,this.width=0,this.height=0,this.systems=[],this.updatable=[],this.paused=!1,this.pauseDuration=0,this.inputView=document.body,Tiny.app||(Tiny.app=this),s.mixin(this),t=t||{},this.boot=t.boot||this.boot||w,this.preload=t.preload||this.preload||w,this.create=t.create||this.create||w,this.update=t.update||this.update||w,this.render=t.render||this.render||w,this._resize_cb=t.resize||w,this._destroy_cb=t.destroy||w;var i=this;setTimeout((function(){i._boot()}),0)};b.prototype._boot=function(){for(var t=0;t<p.length;t++){var i=p[t],e=new i._class_(this);this.systems.push(e),e.update&&this.updatable.push(e),i.name&&(this[i.name]=e)}Tiny.RAF&&(this.raf=new Tiny.RAF(this)),this.boot.call(this.callbackContext);var s=this;setTimeout((function(){s.load?s._preload():s._create()}),0)},b.prototype._preload=function(){this.preload.call(this.callbackContext),this.state=1,this.load.start(this._create)},b.prototype._create=function(){this.emit('load'),this.create.call(this.callbackContext),this.raf&&this.raf.start(),this.state=2},b.prototype.pause=function(){if(this.raf&&this.raf.reset(),!this.paused){for(var t=0;t<this.systems.length;t++)this.systems[t].pause&&this.systems[t].pause();this.paused=!0}},b.prototype.resume=function(){if(this.raf&&this.raf.reset(),this.paused){for(var t=0;t<this.systems.length;t++)this.systems[t].resume&&this.systems[t].resume();this.paused=!1}},b.prototype._update=function(t,i){if(this.paused)this.pauseDuration+=i;else{i*=this.timeScale,this.update.call(this.callbackContext,t,i),this.emit('update',i);for(var e=0;e<this.updatable.length;e++)this.updatable[e].update(i)}this.render(),this.emit('postrender')},b.prototype.resize=function(t,i){this.width=t||this.width,this.height=i||this.height,this.state>0&&(this._resize_cb.call(this.callbackContext,this.width,this.height),this.emit('resize',t,i));var e=this;setTimeout((function(){e.input&&e.input.updateBounds()}),0)},b.prototype.destroy=function(t){for(var i=0;i<this.systems.length;i++)this.systems[i].destroy&&this.systems[i].destroy(t);this.paused=!0,t&&this.load.clearCache(),this.raf&&this.raf.stop(),this._destroy_cb.call(this.callbackContext),Tiny.app===this&&(Tiny.app=null)};var x=function(){return(new Date).getTime()};void 0!==self.performance&&void 0!==self.performance.now?x=self.performance.now.bind(self.performance):void 0!==Date.now&&(x=Date.now);var T=function(t,i){void 0===i&&(i=!1),this.game=t,this.isRunning=!1,this.forceSetTimeOut=i;for(var e=['ms','moz','webkit','o'],s=0;s<e.length&&!window.requestAnimationFrame;s++)window.requestAnimationFrame=window[e[s]+'RequestAnimationFrame'],window.cancelAnimationFrame=window[e[s]+'CancelAnimationFrame']||window[e[s]+'CancelRequestAnimationFrame'];y=!1,v=null,m=null,_=0,g=0};T.prototype={start:function(){_=x(),this.isRunning=!0;var t=this;!window.requestAnimationFrame||this.forceSetTimeOut?(y=!0,v=function(){return t.updateSetTimeout()},m=window.setTimeout(v,0)):(y=!1,v=function(){return t.updateRAF()},m=window.requestAnimationFrame(v))},updateRAF:function(){g=x(),this.isRunning&&(this.game._update(Math.floor(g),g-_),m=window.requestAnimationFrame(v)),_=g},updateSetTimeout:function(){g=x(),this.isRunning&&(this.game._update(Math.floor(g),g-_),m=window.setTimeout(v,T.timeToCall)),_=g},reset:function(){_=x()},stop:function(){y?clearTimeout(m):window.cancelAnimationFrame(m),this.isRunning=!1}},T.timeToCall=15;var C={image:{},texture:{}},E=function(t){s.mixin(this),t.cache=C,this.game=t,this.list=[]};E.prototype={clearCache:function(){for(var t in C.texture)C.texture[t].destroy();for(var t in C)C[t]={}},all:function(t){this.list=this.list.concat(t)},start:function(t){var i=this,e=i.game,s=i.list,n=s.length;function h(){var t=s.shift(),i=E[t.type];i?i(t,r):r()}function r(r,a){i.emit('progress',1-s.length/n),0!=s.length?h():(i.emit('complete'),t.call(e))}0!=n?h():t.call(e)}},f('load',E);var I=function(t,i){this.resolution=1,this.width=100,this.height=100,this.scaleMode=i||0,this.valid=!1,this.source=t,this._UID=++n,this.premultipliedAlpha=!0,this._glTextures=[],this.mipmap=!1,this._dirty=[!0,!0,!0,!0],t&&((t.complete||t.getContext)&&t.width&&t.height?this.onLoad():t.onload=this.onLoad.bind(this),this.imageUrl=null,this._powerOf2=!1)};I.prototype.constructor=I,I.prototype.onLoad=function(t){this.valid=!0,this.width=this.source.naturalWidth||this.source.width,this.height=this.source.naturalHeight||this.source.height,this.dirty(),this.onload&&this.onload()},I.prototype.destroy=function(){this.imageUrl?(delete BaseTextureCache[this.imageUrl],delete PIXI.TextureCache[this.imageUrl],this.imageUrl=null,navigator.isCocoonJS||(this.source.src='')):this.source&&this.source._pixiId&&delete BaseTextureCache[this.source._pixiId],this.source=null,this.unloadFromGPU()},I.prototype.dirty=function(){for(var t=0;t<this._glTextures.length;t++)this._dirty[t]=!0},I.prototype.unloadFromGPU=function(){this.dirty();for(var t=this._glTextures.length-1;t>=0;t--){var i=this._glTextures[t],e=Tiny.glContexts[t];e&&i&&e.deleteTexture(i)}this._glTextures.length=0,this.dirty()};var M=function(t,i){var e=new Image;e.addEventListener('load',(function(){var s=new I(e);C.image[t.key]=s,i(t,s)})),e.src=t.src};E.image=M,E.prototype.image=function(t,i){this.list.push({src:i,key:t,type:'image'})};var R=function(t,i,e,s){this.x=t||0,this.y=i||0,this.width=e||0,this.height=s||0,this.type=c.RECT};R.prototype.contains=function(t,i){if(this.width<=0||this.height<=0)return!1;var e=this.x;if(t>=e&&t<=e+this.width){var s=this.y;if(i>=s&&i<=s+this.height)return!0}return!1},R.prototype.constructor=R;new R(0,0,0,0);var k=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},S=function(t,i,e,s){if(this.noFrame=!1,i||(this.noFrame=!0,i=new R(0,0,1,1)),'string'==typeof t){var n=t;if(!(t=C.image[n]))throw new Error('Cache Error: image '+n+' does`t found in cache');C.texture[n]=this,this.key=n}else t instanceof S?t=t.base:t instanceof I||(t=new I(t));this.base=t,this.frame=i,this.trim=s,this.valid=!1,this._uvs=null,this.width=0,this.height=0,this.crop=e||new R(0,0,1,1),t.valid?this.onBaseUpdate():t.onload=this.onBaseUpdate.bind(this)};S.prototype.constructor=S,S.prototype.onBaseUpdate=function(){var t=this.base;this.noFrame&&(this.frame=new R(0,0,t.width,t.height)),this.setFrame(this.frame)},S.prototype.addToCache=function(t,i){this.key=this.key||t,this.frame.name=this.frame.name||i,this.frame.name&&(t+='.'+this.frame.name),C.texture[t]=this},S.prototype.destroy=function(t){t&&this.base.destroy(),this.key&&delete C.texture[this.key],this.valid=!1},S.prototype.setFrame=function(t){this.noFrame=!1,this.frame=t,this.width=t.width,this.height=t.height,this.crop.x=t.x,this.crop.y=t.y,this.crop.width=t.width,this.crop.height=t.height,this.trim||!(t.x+t.width>this.base.width||t.y+t.height>this.base.height)?(this.valid=t&&t.width&&t.height&&this.base.valid,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()):this.valid=!1},S.prototype._updateUvs=function(){this._uvs||(this._uvs=new k);var t=this.crop,i=this.base.width,e=this.base.height;this._uvs.x0=t.x/i,this._uvs.y0=t.y/e,this._uvs.x1=(t.x+t.width)/i,this._uvs.y1=t.y/e,this._uvs.x2=(t.x+t.width)/i,this._uvs.y2=(t.y+t.height)/e,this._uvs.x3=t.x/i,this._uvs.y3=(t.y+t.height)/e};E.atlas=function(t,i){var e=t.key;M(t,(function(t,s){for(var n=0;n<t.data.length;n++){var h=e+'.'+t.data[n].name,r=new S(s,t.data[n]);r.key=e,C.texture[h]=r}i()}))},E.prototype.atlas=function(t,i,e){this.list.push({src:i,key:t,data:e,type:'atlas'})};var A;E.spritesheet=function(t,i){var e=t.key;M(t,(function(t,s){var n,h,r;if(t.data){var a=t.data;n=a.length-1;for(var o=0;o<=n;o++)h=e+'.'+o,(r=new S(s,{name:o,x:Math.floor(a[o].x),y:Math.floor(a[o].y),width:Math.floor(a[o].width),height:Math.floor(a[o].height),duration:a[o].duration})).key=e,r.lastFrame=n,C.texture[h]=r}else{var u=s.width,l=s.height,c=t.width,d=t.height;c||(c=Math.floor(u/(t.cols||1))),d||(d=Math.floor(l/(t.rows||1)));var p=Math.floor(u/c)*Math.floor(l/d);if(0===p)return i();t.total&&(p=Math.min(p,t.total));var f=0,y=0;n=p-1;for(o=0;o<p;o++)h=e+'.'+o,(r=new S(s,{name:o,x:f,y,width:c,height:d,duration:t.duration})).key=e,r.lastFrame=n,C.texture[h]=r,(f+=c)+c>u&&(f=0,y+=d)}i()}))},E.prototype.spritesheet=function(t,i,e,s,n,h){var r={src:i,key:t,type:'spritesheet'};'number'==typeof e?(r.width=e,r.height=s,r.total=n,r.duration=h):e.length>0&&(r.data=e),this.list.push(r)};var O=function(t){this.game=t;var i=this.domElement=t.inputView;this.bounds={x:0,y:0,width:0,height:0},this.candidates=[],this.list=[],this.lastMove=null,this.isDown=!1,this.downHandler=this.downHandler.bind(this),this.moveHandler=this.moveHandler.bind(this),this.upHandler=this.upHandler.bind(this),i.addEventListener('touchstart',this.downHandler),i.addEventListener('touchmove',this.moveHandler),i.addEventListener('touchend',this.upHandler),i.addEventListener('touchcancel',this.upHandler),i.addEventListener('mousedown',this.downHandler),i.addEventListener('mousemove',this.moveHandler),i.addEventListener('mouseup',this.upHandler),s.mixin(this);for(var e=0;e<O.systems.length;e++)O.systems[e].init.call(this);this.updateBounds()};O.prototype={add:function(t,i){t.inputEnabled=!0,(i=i||{}).system=this,t.input=i,s.mixin(t.input),this.list.push(t)},remove:function(t){var i=this.list.indexOf(t);if(i>-1){var e=this.list[i];return e.input=null,e.inputEnabled=!1,this.list.splice(i,1),e}},inputHandler:function(t,i){var e=this.getCoords(i);if(null!==e){if('move'!=t){this.candidates.length=0;for(var s=0;s<O.systems.length;s++)O.systems[s].preHandle.call(this,e.x,e.y);for(var n,h=0;h<this.list.length;h++)(n=this.list[h]).inputEnabled&&n.parent&&(n.input.checkBounds?n.input.checkBounds.call(this,n,e.x,e.y):O.checkBounds.call(this,n,e.x,e.y))&&this.candidates.push(n);for(s=this.candidates.length-1;s>=0;s--){if((n=this.candidates[s]).input['last_'+t]={x:e.x,y:e.y},n.input.emit(t,{x:e.x,y:e.y}),'up'==t){var r=n.input.last_down;r&&a.distance(r.x,r.y,e.x,e.y)<30&&n.input.emit('click',{x:e.x,y:e.y})}if(!n.input.transparent)break}}this.emit(t,{x:e.x,y:e.y})}},moveHandler:function(t){this.lastMove=t,this.inputHandler('move',t)},upHandler:function(t){this.isDown=!1,this.inputHandler('up',this.lastMove)},downHandler:function(t){this.isDown=!0,this.lastMove=t,this.inputHandler('down',t)},clickHandler:function(t){this.inputHandler('click',t)},getCoords:function(t){var i=null;return'undefined'!=typeof TouchEvent&&t instanceof TouchEvent?(A=!0,t.touches.length>0?i={x:t.touches[0].clientX,y:t.touches[0].clientY}:t.clientX&&t.clientY&&(i={x:t.clientX,y:t.clientY})):i={x:t.clientX,y:t.clientY},A&&t instanceof MouseEvent||null===i?null:i={x:i.x-this.bounds.x,y:i.y-this.bounds.y}},updateBounds:function(){var t=this.bounds,i=this.domElement.getBoundingClientRect();t.x=i.left,t.y=i.top,t.width=i.width,t.height=i.height},destroy:function(){var t=this.domElement;t.removeEventListener('touchstart',this.downHandler),t.removeEventListener('touchmove',this.moveHandler),t.removeEventListener('touchend',this.upHandler),t.removeEventListener('touchcancel',this.upHandler),t.removeEventListener('mousedown',this.downHandler),t.removeEventListener('mousemove',this.moveHandler),t.removeEventListener('mouseup',this.upHandler)}},O.checkBounds=function(t,i,e){if(t.worldVisible&&t.getBounds().contains(i,e))return!0},O.systems=[],f('input',O);var F=function(){},L=function(t,i,e,s,n,h,r,a,o){this.game=e,this.cb=s||F,this.ctx=n||this,this.delay=null==h?1e3:h,this.loop=r,this.count=a||0,this.repeat=this.count>0,this.running=!!t,this._lastFrame=0,this.autoRemove=i,this.onComplete=o||F};L.prototype={start:function(){this.running=!0},pause:function(){this.running=!1},stop:function(){this.running=!1,this._lastFrame=0},update:function(t){this.running&&(this._lastFrame+=t,this._lastFrame>=this.delay&&(this.cb.call(this.ctx),this._lastFrame=0,this.repeat?(this.count--,0===this.count&&(this.running=!1,this.autoRemove&&this.game.timer.remove(this),this.onComplete())):this.loop||(this.running=!1,this.autoRemove&&this.game.timer.remove(this))))}};var H=function(t){this.game=t,this.list=[],this.autoStart=!0,this.autoRemove=!0};H.prototype={update:function(t){for(var i=0;i<this.list.length;i++)this.list[i].update(t)},removeAll:function(){for(var t=0;t<this.list.length;t++)this.list[t].stop();this.list=[]},remove:function(t){var i=this.list.indexOf(t);i>-1&&(t.stop(),this.list.splice(i,1))},add:function(t,i,e,s,n){s=null!=s?s:this.autoStart,n=null!=n?n:this.autoRemove;var h=new L(s,n,this.game,i,e,t);return this.list.push(h),h},loop:function(t,i,e,s,n){s=null!=s?s:this.autoStart,n=null!=n?n:this.autoRemove;var h=new L(s,n,this.game,i,e,t,!0);return this.list.push(h),h},repeat:function(t,i,e,s,n,h,r){n=null!=n?n:this.autoStart,h=null!=h?h:this.autoRemove;var a=new L(n,h,this.game,e,s,t,!1,i,r);return this.list.push(a),a},destroy:function(){this.removeAll()}},f('timer',H);var P=function(){this._tweens={},this._tweensAddedDuringUpdate={}};P.prototype={getAll:function(){return Object.keys(this._tweens).map(function(t){return this._tweens[t]}.bind(this))},removeAll:function(){this._tweens={}},add:function(t){var i=t.getId();this._tweens[i]=t,this._tweensAddedDuringUpdate[i]=t},remove:function(t){var i=t.getId();delete this._tweens[i],delete this._tweensAddedDuringUpdate[i]},update:function(t,i){var e=Object.keys(this._tweens);if(0===e.length)return!1;for(;e.length>0;){this._tweensAddedDuringUpdate={};for(var s=0;s<e.length;s++){var n=this._tweens[e[s]];n&&!1===n.update(t)&&(n._isPlaying=!1,i||delete this._tweens[e[s]])}e=Object.keys(this._tweensAddedDuringUpdate)}return!0}};var U=new P;U.Group=P,U._nextId=0,U.nextId=function(){return U._nextId++};var D=function(t,i){this._isPaused=!1,this._object=t,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._repeatDelayTime=void 0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._time=0,this._easingFunction=j.Linear.None,this._interpolationFunction=N.Linear,this._chainedTweens=[],this._onStartCallback=null,this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onRepeatCallback=null,this._onCompleteCallback=null,this._onStopCallback=null,this._group=i||U,this._id=U.nextId()};D.prototype={getId:function(){return this._id},isPlaying:function(){return this._isPlaying},isPaused:function(){return this._isPaused},to:function(t,i){return this._valuesEnd=Object.create(t),void 0!==i&&(this._duration=i),this},duration:function(t){return this._duration=t,this},start:function(t){for(var i in this._group.add(this),this._isPlaying=!0,this._isPaused=!1,this._time=0,this._onStartCallbackFired=!1,this._startTime=this._delayTime,this._valuesEnd){if(this._valuesEnd[i]instanceof Array){if(0===this._valuesEnd[i].length)continue;this._valuesEnd[i]=[this._object[i]].concat(this._valuesEnd[i])}void 0!==this._object[i]&&(1!=t&&void 0!==this._valuesStart[i]||(this._valuesStart[i]=this._object[i]),this._valuesStart[i]instanceof Array==!1&&(this._valuesStart[i]*=1),this._valuesStartRepeat[i]=this._valuesStart[i]||0)}return this},stop:function(){return this._isPlaying?(this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,null!==this._onStopCallback&&this._onStopCallback(this._object),this.stopChainedTweens(),this):this},end:function(){return this.update(1/0),this},pause:function(){return this._isPaused||!this._isPlaying||(this._isPaused=!0,this._group.remove(this)),this},resume:function(){return this._isPaused&&this._isPlaying?(this._isPaused=!1,this._group.add(this),this):this},stopChainedTweens:function(){for(var t=0,i=this._chainedTweens.length;t<i;t++)this._chainedTweens[t].stop()},group:function(t){return this._group=t,this},delay:function(t){return this._delayTime=t,this},repeat:function(t){return this._repeat=t,this},repeatDelay:function(t){return this._repeatDelayTime=t,this},yoyo:function(t){return this._yoyo=t,this},easing:function(t){return this._easingFunction=t,this},interpolation:function(t){return this._interpolationFunction=t,this},chain:function(){return this._chainedTweens=arguments,this},onStart:function(t){return this._onStartCallback=t,this},onUpdate:function(t){return this._onUpdateCallback=t,this},onRepeat:function(t){return this._onRepeatCallback=t,this},onComplete:function(t){return this._onCompleteCallback=t,this},onStop:function(t){return this._onStopCallback=t,this},update:function(t){var i,e,s;if(this._time+=t,this._time<this._startTime)return!0;for(i in!1===this._onStartCallbackFired&&(null!==this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),e=(this._time-this._startTime)/this._duration,e=0===this._duration||e>1?1:e,s=this._easingFunction(e),this._valuesEnd)if(void 0!==this._valuesStart[i]){var n=this._valuesStart[i]||0,h=this._valuesEnd[i];h instanceof Array?this._object[i]=this._interpolationFunction(h,s):('string'==typeof h&&(h='+'===h.charAt(0)||'-'===h.charAt(0)?n+parseFloat(h):parseFloat(h)),'number'==typeof h&&(this._object[i]=n+(h-n)*s))}if(null!==this._onUpdateCallback&&this._onUpdateCallback(this._object,e),1===e){if(this._time=0,this._repeat>0){for(i in isFinite(this._repeat)&&this._repeat--,this._valuesStartRepeat){if('string'==typeof this._valuesEnd[i]&&(this._valuesStartRepeat[i]=this._valuesStartRepeat[i]+parseFloat(this._valuesEnd[i])),this._yoyo){var r=this._valuesStartRepeat[i];this._valuesStartRepeat[i]=this._valuesEnd[i],this._valuesEnd[i]=r}this._valuesStart[i]=this._valuesStartRepeat[i]}return this._yoyo&&(this._reversed=!this._reversed),void 0!==this._repeatDelayTime?this._startTime=this._repeatDelayTime:this._startTime=this._delayTime,null!==this._onRepeatCallback&&this._onRepeatCallback(this._object),!0}null!==this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var a=0,o=this._chainedTweens.length;a<o;a++)this._chainedTweens[a].start();return!1}return!0}};var B,j={Linear:{None:function(t){return t}},Quadratic:{In:function(t){return t*t},Out:function(t){return t*(2-t)},InOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)}},Cubic:{In:function(t){return t*t*t},Out:function(t){return--t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}},Quartic:{In:function(t){return t*t*t*t},Out:function(t){return 1- --t*t*t*t},InOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}},Quintic:{In:function(t){return t*t*t*t*t},Out:function(t){return--t*t*t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}},Sinusoidal:{In:function(t){return 1-Math.cos(t*Math.PI/2)},Out:function(t){return Math.sin(t*Math.PI/2)},InOut:function(t){return.5*(1-Math.cos(Math.PI*t))}},Exponential:{In:function(t){return 0===t?0:Math.pow(1024,t-1)},Out:function(t){return 1===t?1:1-Math.pow(2,-10*t)},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))}},Circular:{In:function(t){return 1-Math.sqrt(1-t*t)},Out:function(t){return Math.sqrt(1- --t*t)},InOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}},Elastic:{In:function(t){return 0===t?0:1===t?1:-Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)},Out:function(t){return 0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin(5*(t-.1)*Math.PI)+1},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?-.5*Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI):.5*Math.pow(2,-10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)+1}},Back:{In:function(t){var i=1.70158;return t*t*((i+1)*t-i)},Out:function(t){var i=1.70158;return--t*t*((i+1)*t+i)+1},InOut:function(t){var i=2.5949095;return(t*=2)<1?t*t*((i+1)*t-i)*.5:.5*((t-=2)*t*((i+1)*t+i)+2)}},Bounce:{In:function(t){return 1-j.Bounce.Out(1-t)},Out:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},InOut:function(t){return t<.5?.5*j.Bounce.In(2*t):.5*j.Bounce.Out(2*t-1)+.5}}},N={Linear:function(t,i){var e=t.length-1,s=e*i,n=Math.floor(s),h=N.Utils.Linear;return i<0?h(t[0],t[1],s):i>1?h(t[e],t[e-1],e-s):h(t[n],t[n+1>e?e:n+1],s-n)},Bezier:function(t,i){for(var e=0,s=t.length-1,n=Math.pow,h=N.Utils.Bernstein,r=0;r<=s;r++)e+=n(1-i,s-r)*n(i,r)*t[r]*h(s,r);return e},CatmullRom:function(t,i){var e=t.length-1,s=e*i,n=Math.floor(s),h=N.Utils.CatmullRom;return t[0]===t[e]?(i<0&&(n=Math.floor(s=e*(1+i))),h(t[(n-1+e)%e],t[n],t[(n+1)%e],t[(n+2)%e],s-n)):i<0?t[0]-(h(t[0],t[0],t[1],t[1],-s)-t[0]):i>1?t[e]-(h(t[e],t[e],t[e-1],t[e-1],s-e)-t[e]):h(t[n?n-1:0],t[n],t[e<n+1?e:n+1],t[e<n+2?e:n+2],s-n)},Utils:{Linear:function(t,i,e){return(i-t)*e+t},Bernstein:function(t,i){var e=N.Utils.Factorial;return e(t)/e(i)/e(t-i)},Factorial:(B=[1],function(t){var i=1;if(B[t])return B[t];for(var e=t;e>1;e--)i*=e;return B[t]=i,i}),CatmullRom:function(t,i,e,s,n){var h=.5*(e-t),r=.5*(s-i),a=n*n;return(2*i-2*e+h+r)*(n*a)+(-3*i+3*e-2*h-r)*a+h*n+i}}},q=function(t){this.game=t,this.bufferList=[],this.group=new P};q.prototype={remove:function(t){this.group.remove(t)},add:function(t){return new D(t,this.group)},pause:function(){for(var t in this.bufferList.length=0,this.group._tweens)this.bufferList.push(this.group._tweens[t]),this.group._tweens[t].pause()},resume(){for(var t=0;t<this.bufferList.length;t++)this.bufferList[t].resume();this.bufferList.length=0},update:function(t){this.group.update(t)},destroy:function(){this.bufferList.length=0,this.group.removeAll(),this.group=null}},f('tweens',q),Tiny.App=b,Tiny.RAF=T,Tiny.registerSystem=f,Tiny.systems=p,Tiny.TweenManager=q,Tiny.Cache=C,Tiny.Loader=E,Tiny.Easing=j,Tiny.Interpolation=N,Tiny.Input=O,Tiny.Timer=L}()}();