mirror of
https://github.com/pyscript/pyscript.git
synced 2022-05-01 19:47:48 +03:00
48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
(function() {
|
|
if (typeof Mario === 'undefined')
|
|
window.Mario = {};
|
|
|
|
var Coin = Mario.Coin = function(pos, sprite) {
|
|
Mario.Entity.call(this, {
|
|
pos: pos,
|
|
sprite: sprite,
|
|
hitbox: [0,0,16,16]
|
|
});
|
|
this.idx = level.items.length
|
|
}
|
|
|
|
Mario.Util.inherits(Coin, Mario.Entity);
|
|
|
|
Coin.prototype.isPlayerCollided = function() {
|
|
//the first two elements of the hitbox array are an offset, so let's do this now.
|
|
var hpos1 = [this.pos[0] + this.hitbox[0], this.pos[1] + this.hitbox[1]];
|
|
var hpos2 = [player.pos[0] + player.hitbox[0], player.pos[1] + player.hitbox[1]];
|
|
|
|
//if the hitboxes actually overlap
|
|
if (!(hpos1[0] > hpos2[0]+player.hitbox[2] || (hpos1[0]+this.hitbox[2] < hpos2[0]))) {
|
|
if (!(hpos1[1] > hpos2[1]+player.hitbox[3] || (hpos1[1]+this.hitbox[3] < hpos2[1]))) {
|
|
this.collect();
|
|
}
|
|
}
|
|
}
|
|
|
|
Coin.prototype.render = function(ctx, vX, vY) {
|
|
this.sprite.render(ctx, this.pos[0], this.pos[1], vX, vY);
|
|
}
|
|
|
|
//money is not affected by gravity, you see.
|
|
Coin.prototype.update = function(dt) {
|
|
this.sprite.update(dt);
|
|
}
|
|
Coin.prototype.checkCollisions = function() {
|
|
this.isPlayerCollided();
|
|
}
|
|
|
|
Coin.prototype.collect = function() {
|
|
sounds.coin.currentTime = 0.05;
|
|
sounds.coin.play();
|
|
player.coins += 1;
|
|
delete level.items[this.idx]
|
|
}
|
|
})();
|