(function () { if (typeof Mario === "undefined") window.Mario = {}; var Entity = (Mario.Entity = function (options) { this.vel = [0, 0]; this.acc = [0, 0]; this.standing = true; this.pos = options.pos; this.sprite = options.sprite; this.hitbox = options.hitbox; this.left = false; }); Entity.prototype.render = function (ctx, vX, vY) { this.sprite.render(ctx, this.pos[0], this.pos[1], vX, vY); }; Entity.prototype.collideWall = function (wall) { //the wall will always be a 16x16 block with hitbox = [0,0,16,16]. if (this.pos[0] > wall.pos[0]) { //from the right this.pos[0] = wall.pos[0] + wall.hitbox[2] - this.hitbox[0]; this.vel[0] = Math.max(0, this.vel[0]); this.acc[0] = Math.max(0, this.acc[0]); } else { this.pos[0] = wall.pos[0] + wall.hitbox[0] - this.hitbox[2] - this.hitbox[0]; this.vel[0] = Math.min(0, this.vel[0]); this.acc[0] = Math.min(0, this.acc[0]); } }; Entity.prototype.bump = function () {}; })();