bp-space-invaders
Version:
The BP Space Invaders Game
31 lines • 5.68 kB
JavaScript
export class MoonService {
constructor(ctx, boundary) {
this.ctx = ctx;
this.boundary = boundary;
this.leftBoundary = this.boundary.x + 40;
this.rightBoundary = this.boundary.width - 80 + this.leftBoundary;
this.boundaryStakeWidth = 5;
this.boundaryStakeHeight = this.boundary.height / 2;
}
drawTheMoon() {
this.ctx.fillStyle = 'rgba(34, 65, 4)';
this.ctx.fillRect(this.boundary.x, this.boundary.y, this.boundary.width, this.boundary.height);
this.ctx.fillStyle = 'rgba(8, 136, 23)';
this.ctx.fillRect(this.leftBoundary - this.boundaryStakeWidth, this.boundary.y, this.boundaryStakeWidth, this.boundaryStakeHeight);
this.ctx.fillStyle = 'rgba(200, 95, 36)';
this.ctx.fillRect(this.rightBoundary, this.boundary.y, this.boundaryStakeWidth, this.boundaryStakeHeight);
}
animate() {
this.drawTheMoon();
}
getMoonTop() {
return this.boundary.y;
}
getMoonLeftBoundary() {
return this.leftBoundary - 1;
}
getMoonRightBoundary() {
return this.rightBoundary + 1;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9vbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BhY2UtaW52YWRlcnMvc3JjL2xpYi9zZXJ2aWNlL21vb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLE9BQU8sV0FBVztJQXVCdEIsWUFBb0IsR0FBNkIsRUFBVSxRQUE0QjtRQUFuRSxRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQW9CO1FBQ3JGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDbEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFLRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLENBQUM7UUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvRixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FDZixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQ2YsSUFBSSxDQUFDLGtCQUFrQixFQUN2QixJQUFJLENBQUMsbUJBQW1CLENBQ3pCLENBQUM7UUFFRixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQztRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM1RyxDQUFDO0lBS00sT0FBTztRQUNaLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBS00sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUtNLG1CQUFtQjtRQUN4QixPQUFPLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFLTSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb3VuZGFyeVNldHVwTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9ib3VuZGFyeS1zZXQubW9kZWwnO1xuXG4vKipcbiAqIFRoZSBNb29uIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIE1vb25TZXJ2aWNlIHtcbiAgLyoqXG4gICAqIHRoZSBsZWZ0IGJvdW5kYXJ5XG4gICAqL1xuICBwcml2YXRlIGxlZnRCb3VuZGFyeTogbnVtYmVyO1xuICAvKipcbiAgICogdGhlIHJpZ2h0IGJvdW5kYXJ5XG4gICAqL1xuICBwcml2YXRlIHJpZ2h0Qm91bmRhcnk6IG51bWJlcjtcbiAgLyoqXG4gICAqIHRoZSBib3VuZGFyeSBzdGFrZSBzaXplXG4gICAqL1xuICBwcml2YXRlIGJvdW5kYXJ5U3Rha2VXaWR0aDogbnVtYmVyO1xuICAvKipcbiAgICogdGhlIGJvdW5kYXJ5IHN0YWtlIEhlaWdodFxuICAgKi9cbiAgcHJpdmF0ZSBib3VuZGFyeVN0YWtlSGVpZ2h0OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0b3JcbiAgICpcbiAgICogQHBhcmFtIGN0eCBUaGUgQ1RYXG4gICAqIEBwYXJhbSBib3VuZGFyeVNldFVwIFRoZSBCb3VuZGFyeSBTZXQgdXBcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsIHByaXZhdGUgYm91bmRhcnk6IEJvdW5kYXJ5U2V0dXBNb2RlbCkge1xuICAgIHRoaXMubGVmdEJvdW5kYXJ5ID0gdGhpcy5ib3VuZGFyeS54ICsgNDA7XG4gICAgdGhpcy5yaWdodEJvdW5kYXJ5ID0gdGhpcy5ib3VuZGFyeS53aWR0aCAtIDgwICsgdGhpcy5sZWZ0Qm91bmRhcnk7XG4gICAgdGhpcy5ib3VuZGFyeVN0YWtlV2lkdGggPSA1O1xuICAgIHRoaXMuYm91bmRhcnlTdGFrZUhlaWdodCA9IHRoaXMuYm91bmRhcnkuaGVpZ2h0IC8gMjtcbiAgfVxuXG4gIC8qKlxuICAgKiBEcmF3IHRoZSBtb29uXG4gICAqL1xuICBkcmF3VGhlTW9vbigpOiB2b2lkIHtcbiAgICB0aGlzLmN0eC5maWxsU3R5bGUgPSAncmdiYSgzNCwgNjUsIDQpJztcbiAgICB0aGlzLmN0eC5maWxsUmVjdCh0aGlzLmJvdW5kYXJ5LngsIHRoaXMuYm91bmRhcnkueSwgdGhpcy5ib3VuZGFyeS53aWR0aCwgdGhpcy5ib3VuZGFyeS5oZWlnaHQpO1xuXG4gICAgdGhpcy5jdHguZmlsbFN0eWxlID0gJ3JnYmEoOCwgMTM2LCAyMyknOyAvLyAgR3JlZW5cbiAgICB0aGlzLmN0eC5maWxsUmVjdChcbiAgICAgIHRoaXMubGVmdEJvdW5kYXJ5IC0gdGhpcy5ib3VuZGFyeVN0YWtlV2lkdGgsXG4gICAgICB0aGlzLmJvdW5kYXJ5LnksXG4gICAgICB0aGlzLmJvdW5kYXJ5U3Rha2VXaWR0aCxcbiAgICAgIHRoaXMuYm91bmRhcnlTdGFrZUhlaWdodFxuICAgICk7XG5cbiAgICB0aGlzLmN0eC5maWxsU3R5bGUgPSAncmdiYSgyMDAsIDk1LCAzNiknOyAvLyBMaWdodCBPcmFuZ2VcbiAgICB0aGlzLmN0eC5maWxsUmVjdCh0aGlzLnJpZ2h0Qm91bmRhcnksIHRoaXMuYm91bmRhcnkueSwgdGhpcy5ib3VuZGFyeVN0YWtlV2lkdGgsIHRoaXMuYm91bmRhcnlTdGFrZUhlaWdodCk7XG4gIH1cblxuICAvKipcbiAgICogQW5pbWF0ZSB0aGUgaW52YXNpb25cbiAgICovXG4gIHB1YmxpYyBhbmltYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZHJhd1RoZU1vb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1vb25Ub3BcbiAgICovXG4gIHB1YmxpYyBnZXRNb29uVG9wKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYm91bmRhcnkueTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxlZnQgYm91bmRhcnlcbiAgICovXG4gIHB1YmxpYyBnZXRNb29uTGVmdEJvdW5kYXJ5KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubGVmdEJvdW5kYXJ5IC0gMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHJpZ2h0IGJvdW5kYXJ5XG4gICAqL1xuICBwdWJsaWMgZ2V0TW9vblJpZ2h0Qm91bmRhcnkoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5yaWdodEJvdW5kYXJ5ICsgMTtcbiAgfVxufVxuIl19