mirror of
https://github.com/pyscript/pyscript.git
synced 2025-12-19 18:27:29 -05:00
52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
(function () {
|
|
if (typeof Mario === "undefined") window.Mario = {};
|
|
|
|
Flag = Mario.Flag = function (pos) {
|
|
//afaik flags always have the same height and Y-position
|
|
this.pos = [pos, 49];
|
|
this.hitbox = [0, 0, 0, 0];
|
|
this.vel = [0, 0];
|
|
this.acc = [0, 0];
|
|
};
|
|
|
|
Flag.prototype.collideWall = function () {};
|
|
|
|
Flag.prototype.update = function (dt) {
|
|
if (!this.done && this.pos[1] >= 170) {
|
|
this.vel = [0, 0];
|
|
this.pos[1] = 170;
|
|
player.exit();
|
|
this.done = true;
|
|
}
|
|
this.pos[1] += this.vel[1];
|
|
};
|
|
|
|
Flag.prototype.checkCollisions = function () {
|
|
this.isPlayerCollided();
|
|
};
|
|
|
|
Flag.prototype.isPlayerCollided = function () {
|
|
if (this.hit) return;
|
|
if (player.pos[0] + 8 >= this.pos[0]) {
|
|
music.overworld.pause();
|
|
sounds.flagpole.play();
|
|
setTimeout(function () {
|
|
music.clear.play();
|
|
}, 2000);
|
|
this.hit = true;
|
|
player.flag();
|
|
this.vel = [0, 2];
|
|
}
|
|
};
|
|
|
|
Flag.prototype.render = function () {
|
|
level.flagpoleSprites[2].render(
|
|
ctx,
|
|
this.pos[0] - 8,
|
|
this.pos[1],
|
|
vX,
|
|
vY,
|
|
);
|
|
};
|
|
})();
|