UNPKG

bp-space-invaders

Version:
61 lines 8.24 kB
import { ASSET_ANIMATION, COLORS } from './number-constants'; import { AssetClass } from '../asset/asset.class'; export class NumberClass extends AssetClass { constructor(gameService, ctx, boundarySetup, color) { super(gameService, ctx, boundarySetup, 0); this.color = color; this.numbers = []; } spawn() { this.assetAnimation = ASSET_ANIMATION[0]; this.engineAnimation = []; this.destructionAnimations = []; super.spawn(); } draw() { this.ctx.save(); this.ctx.translate(this.x, this.y); this.ctx.scale(2, 2); this.drawNumber(); this.ctx.restore(); } drawNumber() { let offset = 0; this.ctx.fillStyle = COLORS[this.color]; this.numbers.map((scoreNumber) => { this.assetAnimation = ASSET_ANIMATION[scoreNumber]; this.assetAnimation.forEach((row, y) => { row.forEach((value, x) => { if (value > 0) { this.ctx.fillRect(x + offset, y, 1, 1); } }); }); offset += 10; }); } padPoints(points) { let stringPoints = points.toString(); if (points < 10) { stringPoints = `000${points}`; } else if (points < 100) { stringPoints = `00${points}`; } else if (points < 1000) { stringPoints = `0${points}`; } return stringPoints; } setNumber(inputNumber, isPadNumber = true) { const numbers = isPadNumber ? this.padPoints(inputNumber) : [inputNumber]; this.numbers = []; for (const index of numbers) { this.numbers.push(Number(index)); } } animate() { this.draw(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BhY2UtaW52YWRlcnMvc3JjL2xpYi9udW1iZXIvbnVtYmVyLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBTWxELE1BQU0sT0FBTyxXQUFZLFNBQVEsVUFBVTtJQWF6QyxZQUNFLFdBQXdCLEVBQ3hCLEdBQTZCLEVBQzdCLGFBQWlDLEVBQ3pCLEtBQWE7UUFFckIsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRmxDLFVBQUssR0FBTCxLQUFLLENBQVE7UUFHckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUtrQixLQUFLO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDaEMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFLUyxJQUFJO1FBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUtPLFVBQVU7UUFDaEIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQW1CLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUVuRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDdkIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO3dCQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDeEM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUVILE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFPTyxTQUFTLENBQUMsTUFBYztRQUM5QixJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDckMsSUFBSSxNQUFNLEdBQUcsRUFBRSxFQUFFO1lBQ2YsWUFBWSxHQUFHLE1BQU0sTUFBTSxFQUFFLENBQUM7U0FDL0I7YUFBTSxJQUFJLE1BQU0sR0FBRyxHQUFHLEVBQUU7WUFDdkIsWUFBWSxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7U0FDOUI7YUFBTSxJQUFJLE1BQU0sR0FBRyxJQUFJLEVBQUU7WUFDeEIsWUFBWSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7U0FDN0I7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBTU0sU0FBUyxDQUFDLFdBQW1CLEVBQUUsV0FBVyxHQUFHLElBQUk7UUFDdEQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUtNLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBU1NFVF9BTklNQVRJT04sIENPTE9SUyB9IGZyb20gJy4vbnVtYmVyLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBHYW1lU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvZ2FtZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFzc2V0Q2xhc3MgfSBmcm9tICcuLi9hc3NldC9hc3NldC5jbGFzcyc7XG5pbXBvcnQgeyBCb3VuZGFyeVNldHVwTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9ib3VuZGFyeS1zZXQubW9kZWwnO1xuXG4vKipcbiAqIFRoZSBOdW1iZXIgQ2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIE51bWJlckNsYXNzIGV4dGVuZHMgQXNzZXRDbGFzcyB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyc1xuICAgKi9cbiAgcHJpdmF0ZSBudW1iZXJzOiBudW1iZXJbXTtcblxuICAvKipcbiAgICogQ29uc3RydWN0b3JcbiAgICogQHBhcmFtIGdhbWVTZXJ2aWNlIFRoZSBHYW1lU2VydmljZVxuICAgKiBAcGFyYW0gY3R4IFRoZSBjdHhcbiAgICogQHBhcmFtIGJvdW5kYXJ5U2V0dXAgVGhlIEJvdW5kYXJ5U2V0dXBNb2RlbFxuICAgKiBAcGFyYW0gY29sb3IgVGhlIENvbG9yIG9mIHRoZSBudW1iZXJzXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBnYW1lU2VydmljZTogR2FtZVNlcnZpY2UsXG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsXG4gICAgYm91bmRhcnlTZXR1cDogQm91bmRhcnlTZXR1cE1vZGVsLFxuICAgIHByaXZhdGUgY29sb3I6IG51bWJlclxuICApIHtcbiAgICBzdXBlcihnYW1lU2VydmljZSwgY3R4LCBib3VuZGFyeVNldHVwLCAwKTtcbiAgICB0aGlzLm51bWJlcnMgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGF3biB0aGUgYm9tYlxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHNwYXduKCk6IHZvaWQge1xuICAgIHRoaXMuYXNzZXRBbmltYXRpb24gPSBBU1NFVF9BTklNQVRJT05bMF07XG4gICAgdGhpcy5lbmdpbmVBbmltYXRpb24gPSBbXTtcbiAgICB0aGlzLmRlc3RydWN0aW9uQW5pbWF0aW9ucyA9IFtdO1xuICAgIHN1cGVyLnNwYXduKCk7XG4gIH1cblxuICAvKipcbiAgICogRHJhdyBldmVueXRoaW5nIG5lY2Vzc2FyeVxuICAgKi9cbiAgcHJvdGVjdGVkIGRyYXcoKTogdm9pZCB7XG4gICAgdGhpcy5jdHguc2F2ZSgpO1xuICAgIHRoaXMuY3R4LnRyYW5zbGF0ZSh0aGlzLngsIHRoaXMueSk7XG4gICAgdGhpcy5jdHguc2NhbGUoMiwgMik7XG4gICAgdGhpcy5kcmF3TnVtYmVyKCk7XG4gICAgdGhpcy5jdHgucmVzdG9yZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERyYXcgdGhlIGJvbWJcbiAgICovXG4gIHByaXZhdGUgZHJhd051bWJlcigpOiB2b2lkIHtcbiAgICBsZXQgb2Zmc2V0ID0gMDtcbiAgICB0aGlzLmN0eC5maWxsU3R5bGUgPSBDT0xPUlNbdGhpcy5jb2xvcl07XG4gICAgdGhpcy5udW1iZXJzLm1hcCgoc2NvcmVOdW1iZXI6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy5hc3NldEFuaW1hdGlvbiA9IEFTU0VUX0FOSU1BVElPTltzY29yZU51bWJlcl07XG5cbiAgICAgIHRoaXMuYXNzZXRBbmltYXRpb24uZm9yRWFjaCgocm93LCB5KSA9PiB7XG4gICAgICAgIHJvdy5mb3JFYWNoKCh2YWx1ZSwgeCkgPT4ge1xuICAgICAgICAgIGlmICh2YWx1ZSA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuY3R4LmZpbGxSZWN0KHggKyBvZmZzZXQsIHksIDEsIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgb2Zmc2V0ICs9IDEwO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhZCB0aGUgcG9pbnRzXG4gICAqXG4gICAqIEBwYXJhbSBwb2ludHMgVGhlIHBvaW50cyB0byBwYWRcbiAgICovXG4gIHByaXZhdGUgcGFkUG9pbnRzKHBvaW50czogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBsZXQgc3RyaW5nUG9pbnRzID0gcG9pbnRzLnRvU3RyaW5nKCk7XG4gICAgaWYgKHBvaW50cyA8IDEwKSB7XG4gICAgICBzdHJpbmdQb2ludHMgPSBgMDAwJHtwb2ludHN9YDtcbiAgICB9IGVsc2UgaWYgKHBvaW50cyA8IDEwMCkge1xuICAgICAgc3RyaW5nUG9pbnRzID0gYDAwJHtwb2ludHN9YDtcbiAgICB9IGVsc2UgaWYgKHBvaW50cyA8IDEwMDApIHtcbiAgICAgIHN0cmluZ1BvaW50cyA9IGAwJHtwb2ludHN9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RyaW5nUG9pbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgTnVtYmVyc1xuICAgKiBAcGFyYW0gaW5wdXROdW1iZXIgdGhlIG51bWJlciB0byBkaXNwbGF5XG4gICAqL1xuICBwdWJsaWMgc2V0TnVtYmVyKGlucHV0TnVtYmVyOiBudW1iZXIsIGlzUGFkTnVtYmVyID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IG51bWJlcnMgPSBpc1BhZE51bWJlciA/IHRoaXMucGFkUG9pbnRzKGlucHV0TnVtYmVyKSA6IFtpbnB1dE51bWJlcl07XG4gICAgdGhpcy5udW1iZXJzID0gW107XG4gICAgZm9yIChjb25zdCBpbmRleCBvZiBudW1iZXJzKSB7XG4gICAgICB0aGlzLm51bWJlcnMucHVzaChOdW1iZXIoaW5kZXgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQW5pbWF0ZSB0aGUgYm9tYlxuICAgKi9cbiAgcHVibGljIGFuaW1hdGUoKTogdm9pZCB7XG4gICAgdGhpcy5kcmF3KCk7XG4gIH1cbn1cbiJdfQ==