craters.js
Advanced tools
Comparing version 1.0.9 to 1.1.0
@@ -25,3 +25,108 @@ // Rect collision tests the edges of each rect to | ||
return true; | ||
} | ||
}; | ||
static solve (collider, collidee) { | ||
// Find the mid points of the collidee and collider | ||
var pMidX = collider.state.size.x * .5 + collider.state.pos.x; | ||
var pMidY = collider.state.size.y * .5 + collider.state.pos.y; | ||
var aMidX = collidee.state.size.x * .5 + collidee.state.pos.x; | ||
var aMidY = collidee.state.size.y * .5 + collidee.state.pos.y; | ||
// To find the side of entry calculate based on | ||
// the normalized sides | ||
var dx = (aMidX - pMidX) / collidee.state.size.y * .5; | ||
var dy = (aMidY - pMidY) / collidee.state.size.y * .5;; | ||
// Calculate the absolute change in x and y | ||
var absDX = abs(dx); | ||
var absDY = abs(dy); | ||
// If the distance between the normalized x and y | ||
// position is less than a small threshold (.1 in this case) | ||
// then this object is approaching from a corner | ||
if (abs(absDX - absDY) < .1) { | ||
// If the collider is approaching from positive X | ||
if (dx < 0) { | ||
// Set the collider x to the right side | ||
collider.state.pos.x = collidee.state.pos.x + collidee.state.size.x; | ||
// If the collider is approaching from negative X | ||
} else { | ||
// Set the collider x to the left side | ||
collider.state.pos.x = collidee.state.pos.x - collider.state.size.x; | ||
} | ||
// If the collider is approaching from positive Y | ||
if (dy < 0) { | ||
// Set the collider y to the bottom | ||
collider.state.pos.y = collidee.state.pos.y + collidee.state.size.y; | ||
// If the collider is approaching from negative Y | ||
} else { | ||
// Set the collider y to the top | ||
collider.state.pos.y = collidee.state.pos.y - collider.state.size.y; | ||
} | ||
// Randomly select a x/y direction to reflect velocity on | ||
if (Math.random() < .5) { | ||
// Reflect the velocity at a reduced rate | ||
collider.state.vel.x = -collider.state.vel.x * collidee.restitution; | ||
// If the object’s velocity is nearing 0, set it to 0 | ||
// STICKY_THRESHOLD is set to .0004 | ||
if (abs(collider.state.vel.x) < STICKY_THRESHOLD) { | ||
collider.state.vel.x = 0; | ||
} | ||
} else { | ||
collider.state.vel.y = -collider.state.vel.y * collidee.restitution; | ||
if (abs(collider.state.vel.y) < STICKY_THRESHOLD) { | ||
collider.state.vel.y = 0; | ||
} | ||
} | ||
// If the object is approaching from the sides | ||
} else if (absDX > absDY) { | ||
// If the collider is approaching from positive X | ||
if (dx < 0) { | ||
collider.state.pos.x = collidee.state.pos.x + collidee.state.size.x; | ||
} else { | ||
// If the collider is approaching from negative X | ||
collider.state.pos.x = collidee.state.pos.x - collider.state.size.x; | ||
} | ||
// Velocity component | ||
collider.state.vel.x = -collider.state.vel.x * collidee.restitution; | ||
if (abs(collider.state.vel.x) < STICKY_THRESHOLD) { | ||
collider.state.vel.x = 0; | ||
} | ||
// If this collision is coming from the top or bottom more | ||
} else { | ||
// If the collider is approaching from positive Y | ||
if (dy < 0) { | ||
collider.state.pos.y = collidee.state.pos.y + collidee.state.size.y; | ||
} else { | ||
// If the collider is approaching from negative Y | ||
collider.state.pos.y = collidee.state.pos.y - collider.state.size.y; | ||
} | ||
// Velocity component | ||
collider.state.vel.y = -collider.state.vel.y * collidee.restitution; | ||
if (abs(collider.state.vel.y) < STICKY_THRESHOLD) { | ||
collider.state.vel.y = 0; | ||
} | ||
} | ||
}; | ||
} | ||
@@ -28,0 +133,0 @@ |
@@ -1,1 +0,1 @@ | ||
!function(t){var e={};function s(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,s),a.l=!0,a.exports}s.m=t,s.c=e,s.d=function(t,e,i){s.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},s.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},s.t=function(t,e){if(1&e&&(t=s(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(s.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)s.d(i,a,function(e){return t[e]}.bind(null,a));return i},s.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return s.d(e,"a",e),e},s.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},s.p="",s(s.s=0)}([function(t,e,s){"use strict";s.r(e);class i{static detect(t,e){var s=t.state.pos.x,i=t.state.pos.y,a=s+t.state.size.x,o=i+t.state.size.y,n=e.state.pos.x,r=e.state.pos.y,h=n+e.state.size.x,c=r+e.state.size.y;return!(o<r||i>c||a<n||s>h)}}class a{constructor(t,e){var s={},i=1e3/e,a=window.performance.now(),o={new:{frameCount:0,startTime:a,sinceStart:0},old:{frameCount:0,startTime:a,sineStart:0}},n="new";return s.fps=0,s.main=function(r){s.stopLoop=window.requestAnimationFrame(s.main);var h,c,p=r,d=p-a;if(d>i){for(var u in a=p-d%i,o)++o[u].frameCount,o[u].sinceStart=p-o[u].startTime;h=o[n],s.fps=Math.round(1e3/(h.sinceStart/h.frameCount)*100)/100,c=o.new.frameCount===o.old.frameCount?5*e:10*e,h.frameCount>c&&(o[n].frameCount=0,o[n].startTime=p,o[n].sinceStart=0,n="new"===n?"old":"new"),t.update(t,p),t.render(t,p)}},s.main(),s}}class o{constructor(t,e,s){s=document.querySelector(s||"body");var i=document.createElement("canvas"),a=i.getContext("2d"),o=window.devicePixelRatio/["webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio"].reduce(function(t,e){return Object.prototype.hasOwnProperty.call(a,e)?a[e]:1});return i.width=Math.round(t*o),i.height=Math.round(e*o),i.style.width=t+"px",i.style.height=e+"px",a.setTransform(o,0,0,o,0,0),s.insertBefore(i,s.firstChild),i}}class n{constructor(t,e,s,i,a){this.entities=[],this.state={container:t,size:{x:10,y:10},bgcolor:"rgba(0,0,0,0)",color:"#ff0",font:"1em Arial"}}update(){for(var t=0;t<this.entities.length;t++)this.entities[t].update()}render(){for(var t=0;t<this.entities.length;t++)this.entities[t].render()}clearContext(t,e){t.clearRect(0,0,e.x,e.y)}}class r extends n{constructor(){super(),this.state={size:{x:10,y:10},pos:{x:0,y:0},vel:{x:0,y:0},accel:{x:0,y:0},radius:10,angle:0}}update(){super.update(),this.state.vel.x+=this.state.accel.x,this.state.vel.y+=this.state.accel.y,this.state.pos.x+=this.state.vel.x,this.state.pos.y+=this.state.vel.y}}class h extends r{constructor(t,e){super(),this.scope=t,this.state.pos=e.pos||{x:0,y:0},this.state.crop={x:0,y:0},this.state.size=e.size||{x:0,y:0},this.state.frames=e.frames||[],this.state.angle=e.angle||0,this.state.image=e.image||new Image,this.state.delay=e.delay||5,this.state.tick=e.tick||0,this.state.orientation=e.orientation||"horizontal"}update(){super.update(),this.state.tick<=0&&("vertical"===this.orientation?(this.state.crop.y=this.state.frames.shift(),this.state.frames.push(this.state.crop.y)):(this.state.crop.x=this.state.frames.shift(),this.state.frames.push(this.state.crop.x)),this.state.tick=this.state.delay),this.state.tick--}render(){super.render(),this.scope.context.save(),this.scope.context.translate(this.state.crop.x+this.state.size.x/2,this.state.crop.y+this.state.size.y/2),this.scope.context.rotate(this.state.angle*(Math.PI/180)),this.scope.context.translate(-(this.state.crop.x+this.state.size.x/2),-(this.state.crop.y+this.state.size.y/2)),this.scope.context.drawImage(this.state.image,this.state.crop.x*this.state.size.x,this.state.crop.y*this.state.size.y,this.state.size.x,this.state.size.y,this.state.pos.x,this.state.pos.y,this.state.size.x,this.state.size.y),this.scope.context.restore()}}Number.prototype.boundary=function(t,e){return Math.min(Math.max(this,t),e)};var c=new class{constructor(){this.rescache={}}load(t,e){var s=this;t instanceof Array?t.forEach(function(t){s.rescache[t]=!1,s.fetch(t,e)}):(s.rescache[t]=!1,s.fetch(t,e))}fetch(t,e){var s=this;if(s.rescache[t])return s.rescache[t];var i=new Image;i.onload=function(){s.rescache[t]=i,s.ready(e)},i.src=t}ready(t){if("function"==typeof t){var e=!0;for(var s in this.rescache)Object.prototype.hasOwnProperty.call(this.rescache,s)&&!this.rescache[s]&&(e=!1);e&&t()}}},p=new class{constructor(){this.sounds={},this.instances=[],this.defaultVolume=1}load(t,e,s){if(this.sounds[t]=new Audio(e),"function"!=typeof s)return new Promise((e,s)=>{this.sounds[t].addEventListener("canplaythrough",e),this.sounds[t].addEventListener("error",s)});this.sounds[t].addEventListener("canplaythrough",s)}remove(t){void 0!==this.sounds&&delete this.sounds[t]}unlock(t,e,s,i){var a=this,o=["touchstart","touchend","mousedown","keydown"],n=function n(){o.forEach(function(t){document.body.removeEventListener(t,n)}),a.play(t,e,s,i)};o.forEach(function(t){document.body.addEventListener(t,n,!1)})}play(t,e,s,i){if(i=i||!1,void 0===this.sounds[t])return console.error("Can't find sound called '"+t+"'."),!1;var a=this.sounds[t].cloneNode(!0);return a.volume="number"==typeof s?s:this.defaultVolume,a.loop=i,a.play(),this.instances.push(a),a.addEventListener("ended",()=>{var t=this.instances.indexOf(a);-1!==t&&this.instances.splice(t,1)}),"function"==typeof e?(a.addEventListener("ended",e),!0):new Promise((t,e)=>a.addEventListener("ended",t))}stopAll(){var t=this.instances.slice();for(var e of t)e.pause(),e.dispatchEvent(new Event("ended"))}};class d extends n{constructor(t,e,s){super(),this.score=0,this.state.size={x:e,y:s},this.state.pos={x:0,y:0},this.deleted=[],this.viewport=new o(this.state.size.x,this.state.size.y,t),this.context=this.viewport.getContext("2d"),this.context.fillStyle="#fff",this.loop=new a(this,60),this.ball=this.entities.push(new u(this))-1,this.paddle=this.entities.push(new x(this))-1,this.bamboos=0}update(){this.bamboos<=1&&this.newgame(this.state.size.y/2/53,this.state.size.x/138),super.update()}render(){this.clearContext(this.context,this.state.size),this.context.font="2em Arial",this.context.fillText("SCORE: ️"+this.score,16,50,this.state.size.x),super.render()}newgame(t,e){for(var s=0;s<t;s++)for(var i=0;i<e;i++){var a=this.entities.push(new l(this,{x:138*i,y:53*s}))-1;this.entities[a].id=a,this.bamboos++}}}class u extends h{constructor(t){super(t,{frames:[0],image:c.fetch("./media/ball@3x.png")}),this.scope=t,this.state.vel={x:5,y:-2},this.state.size={x:48,y:48},this.state.pos={x:t.state.size.x/2-this.state.size.x/2,y:t.state.size.y/2-this.state.size.y}}update(){super.update(),(this.state.pos.x+this.state.size.x>this.scope.state.size.x||this.state.pos.x<0)&&(this.state.vel.x*=-1),(this.state.pos.y+this.state.size.y>this.scope.state.size.y||this.state.pos.y<0)&&(this.state.vel.y*=-1),i.detect(this.scope.entities[this.scope.paddle],this)&&(this.state.vel.y*=-1)}}class l extends h{constructor(t,e){super(t,{frames:[0],image:c.fetch("./media/block@3x.png")}),this.scope=t,this.state.size={x:138,y:53},this.state.pos={x:e.x,y:e.y}}update(){if(super.update(),!this.state.collided&&i.detect(this.scope.entities[this.scope.ball],this)){this.scope.score+=10,this.scope.bamboos--,p.play("pop");for(var t=0;t<10;t++){var e=this.scope.entities.push(new f(this.scope,{x:this.state.pos.x+50*(Math.random()-.5),y:this.state.pos.y+25*(Math.random()-.5)}))-1;this.scope.entities[e].id=e}e=this.id;this.scope.entities=this.scope.entities.filter(function(t){return t.id!=e})}}}class f extends h{constructor(t,e){super(t,{frames:[0]}),this.scope=t,this.state.image=c.fetch("./media/block_break01@3x.png"),this.state.size={x:45,y:35},this.state.pos=e,this.state.accel.y=1.25*Math.random(),this.state.accel.x=1.25*(Math.random()-.5)}update(){super.update(),i.detect(this.scope,this)||(this.state.vel.x=this.state.vel.y=this.state.accel.x=this.state.accel.y=0)}}class x extends h{constructor(t){super(t,{frames:[0],image:c.fetch("./media/paddle@3x.png")}),this.scope=t,this.state.size={x:180,y:69}}update(){super.update(),this.state.pos={x:this.scope.entities[this.scope.ball].state.pos.x+25-this.state.size.x/2,y:this.scope.state.size.y-this.state.size.y}}}p.load("pop","./media/music/pop.ogg");c.load(["./media/ball@3x.png","./media/paddle@3x.png","./media/block@3x.png","./media/block_break01@3x.png"],function(){window.game=new d("#container",window.innerWidth,window.innerHeight,60,!0)})}]); | ||
!function(t){var e={};function s(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,s),a.l=!0,a.exports}s.m=t,s.c=e,s.d=function(t,e,i){s.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},s.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},s.t=function(t,e){if(1&e&&(t=s(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(s.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)s.d(i,a,function(e){return t[e]}.bind(null,a));return i},s.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return s.d(e,"a",e),e},s.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},s.p="",s(s.s=0)}([function(t,e,s){"use strict";s.r(e);class i{static detect(t,e){var s=t.state.pos.x,i=t.state.pos.y,a=s+t.state.size.x,o=i+t.state.size.y,n=e.state.pos.x,r=e.state.pos.y,h=n+e.state.size.x,c=r+e.state.size.y;return!(o<r||i>c||a<n||s>h)}}class a{constructor(t,e){var s={},i=1e3/e,a=window.performance.now(),o={new:{frameCount:0,startTime:a,sinceStart:0},old:{frameCount:0,startTime:a,sineStart:0}},n="new";return s.fps=0,s.main=function(r){s.stopLoop=window.requestAnimationFrame(s.main);var h,c,d=r,p=d-a;if(p>i){for(var u in a=d-p%i,o)++o[u].frameCount,o[u].sinceStart=d-o[u].startTime;h=o[n],s.fps=Math.round(1e3/(h.sinceStart/h.frameCount)*100)/100,c=o.new.frameCount===o.old.frameCount?5*e:10*e,h.frameCount>c&&(o[n].frameCount=0,o[n].startTime=d,o[n].sinceStart=0,n="new"===n?"old":"new"),t.update(t,d),t.render(t,d)}},s.main(),s}}class o{constructor(t,e,s){s=document.querySelector(s||"body");var i=document.createElement("canvas"),a=i.getContext("2d"),o=window.devicePixelRatio/["webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio"].reduce(function(t,e){return Object.prototype.hasOwnProperty.call(a,e)?a[e]:1});return i.width=Math.round(t*o),i.height=Math.round(e*o),i.style.width=t+"px",i.style.height=e+"px",a.setTransform(o,0,0,o,0,0),s.insertBefore(i,s.firstChild),i}}class n{constructor(t,e,s,i,a){this.entities=[],this.state={container:t,size:{x:10,y:10},bgcolor:"rgba(0,0,0,0)",color:"#ff0",font:"1em Arial"}}update(){for(var t=0;t<this.entities.length;t++)this.entities[t].update()}render(){for(var t=0;t<this.entities.length;t++)this.entities[t].render()}clearContext(t,e){t.clearRect(0,0,e.x,e.y)}}class r extends n{constructor(){super(),this.state={size:{x:10,y:10},pos:{x:0,y:0},vel:{x:0,y:0},accel:{x:0,y:0},radius:10,angle:0}}update(){super.update(),this.state.vel.x+=this.state.accel.x,this.state.vel.y+=this.state.accel.y,this.state.pos.x+=this.state.vel.x,this.state.pos.y+=this.state.vel.y}}class h extends r{constructor(t,e){super(),this.scope=t,this.state.pos=e.pos||{x:0,y:0},this.state.crop={x:0,y:0},this.state.size=e.size||{x:0,y:0},this.state.frames=e.frames||[],this.state.angle=e.angle||0,this.state.image=e.image||new Image,this.state.delay=e.delay||5,this.state.tick=e.tick||0,this.state.orientation=e.orientation||"horizontal"}update(){super.update(),this.state.tick<=0&&("vertical"===this.orientation?(this.state.crop.y=this.state.frames.shift(),this.state.frames.push(this.state.crop.y)):(this.state.crop.x=this.state.frames.shift(),this.state.frames.push(this.state.crop.x)),this.state.tick=this.state.delay),this.state.tick--}render(){super.render(),this.scope.context.save(),this.scope.context.translate(this.state.crop.x+this.state.size.x/2,this.state.crop.y+this.state.size.y/2),this.scope.context.rotate(this.state.angle*(Math.PI/180)),this.scope.context.translate(-(this.state.crop.x+this.state.size.x/2),-(this.state.crop.y+this.state.size.y/2)),this.scope.context.drawImage(this.state.image,this.state.crop.x*this.state.size.x,this.state.crop.y*this.state.size.y,this.state.size.x,this.state.size.y,this.state.pos.x,this.state.pos.y,this.state.size.x,this.state.size.y),this.scope.context.restore()}}Number.prototype.boundary=function(t,e){return Math.min(Math.max(this,t),e)};var c=new class{constructor(){this.rescache={}}load(t,e){var s=this;t instanceof Array?t.forEach(function(t){s.rescache[t]=!1,s.fetch(t,e)}):(s.rescache[t]=!1,s.fetch(t,e))}fetch(t,e){var s=this;if(s.rescache[t])return s.rescache[t];var i=new Image;i.onload=function(){s.rescache[t]=i,s.ready(e)},i.src=t}ready(t){if("function"==typeof t){var e=!0;for(var s in this.rescache)Object.prototype.hasOwnProperty.call(this.rescache,s)&&!this.rescache[s]&&(e=!1);e&&t()}}},d=new class{constructor(){this.sounds={},this.instances=[],this.defaultVolume=1}load(t,e,s){if(this.sounds[t]=new Audio(e),"function"!=typeof s)return new Promise((e,s)=>{this.sounds[t].addEventListener("canplaythrough",e),this.sounds[t].addEventListener("error",s)});this.sounds[t].addEventListener("canplaythrough",s)}remove(t){void 0!==this.sounds&&delete this.sounds[t]}unlock(t,e,s,i){var a=this,o=["touchstart","touchend","mousedown","keydown"],n=function n(){o.forEach(function(t){document.body.removeEventListener(t,n)}),a.play(t,e,s,i)};o.forEach(function(t){document.body.addEventListener(t,n,!1)})}play(t,e,s,i){if(i=i||!1,void 0===this.sounds[t])return console.error("Can't find sound called '"+t+"'."),!1;var a=this.sounds[t].cloneNode(!0);return a.volume="number"==typeof s?s:this.defaultVolume,a.loop=i,a.play(),this.instances.push(a),a.addEventListener("ended",()=>{var t=this.instances.indexOf(a);-1!==t&&this.instances.splice(t,1)}),"function"==typeof e?(a.addEventListener("ended",e),!0):new Promise((t,e)=>a.addEventListener("ended",t))}stopAll(){var t=this.instances.slice();for(var e of t)e.pause(),e.dispatchEvent(new Event("ended"))}};class p extends n{constructor(t,e,s){super(),this.score=0,this.state.size={x:e,y:s},this.state.pos={x:0,y:0},this.deleted=[],this.viewport=new o(this.state.size.x,this.state.size.y,t),this.context=this.viewport.getContext("2d"),this.context.fillStyle="#fff",this.loop=new a(this,60),this.ball=this.entities.push(new u(this))-1,this.paddle=this.entities.push(new f(this))-1,this.bamboos=this.started=0}update(){this.started<1||(this.bamboos<=0&&this.newgame(this.state.size.y/2/53,this.state.size.x/138),super.update())}render(){this.clearContext(this.context,this.state.size);var t=this;document.addEventListener("click",function(){t.started<=0&&t.started++}),this.started<1?this.context.drawImage(c.fetch("./media/TapToPlay@3x.png"),(this.state.size.x-300)/2,(this.state.size.y-180)/2,300,180):(this.context.font="2em Arial",this.context.fillText("SCORE: ️"+this.score,16,50,this.state.size.x),super.render())}newgame(t,e){for(var s=0;s<t;s++)for(var i=0;i<e;i++){var a=this.entities.push(new l(this,{x:138*i,y:53*s}))-1;this.entities[a].id=a,this.bamboos++}}}class u extends h{constructor(t){super(t,{frames:[0],image:c.fetch("./media/ball@3x.png")}),this.scope=t,this.state.vel={x:8,y:-5},this.state.size={x:48,y:48},this.state.pos={x:t.state.size.x/2-this.state.size.x/2,y:t.state.size.y/2-this.state.size.y}}update(){super.update(),(this.state.pos.x+this.state.size.x>this.scope.state.size.x||this.state.pos.x<0)&&(this.state.vel.x*=-1),(this.state.pos.y+this.state.size.y>this.scope.state.size.y||this.state.pos.y<0)&&(this.state.vel.y*=-1),i.detect(this.scope.entities[this.scope.paddle],this)&&(this.state.vel.y*=-1)}}class l extends h{constructor(t,e){super(t,{frames:[0],image:c.fetch("./media/block@3x.png")}),this.scope=t,this.state.size={x:138,y:53},this.state.pos={x:e.x,y:e.y}}update(){if(super.update(),!this.state.collided&&i.detect(this.scope.entities[this.scope.ball],this)){this.scope.score+=10,this.scope.bamboos--,d.play("pop");var t=this.id;this.scope.entities=this.scope.entities.filter(function(e){return e.id!=t})}}}class f extends h{constructor(t){super(t,{frames:[0],image:c.fetch("./media/paddle@3x.png")}),this.scope=t,this.state.size={x:180,y:69}}update(){super.update(),this.state.pos={x:this.scope.entities[this.scope.ball].state.pos.x+25-this.state.size.x/2,y:this.scope.state.size.y-this.state.size.y}}}d.load("pop","./media/music/pop.ogg");c.load(["./media/ball@3x.png","./media/paddle@3x.png","./media/block@3x.png","./media/block_break01@3x.png","./media/TapToPlay@3x.png"],function(){window.game=new p("#container",window.innerWidth,window.innerHeight,60,!0)})}]); |
{ | ||
"name": "craters.js", | ||
"version": "1.0.9", | ||
"version": "1.1.0", | ||
"description": "A Compact Game Engine that helps you build fast, modern HTML5 Games", | ||
@@ -5,0 +5,0 @@ "main": "./index.js", |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1834194
79
1795