bp-prism-game
Version:
The BP Prism Game
39 lines • 4.23 kB
JavaScript
import { AssetClass } from '../asset/asset.class';
import { BLOCK_SIZE } from '../gameboard/gameboard-constants';
/**
* The Character Class
*/
export class CharacterClass extends AssetClass {
/**
* Constructor
* @param gameService The GameService
* @param ctx The ctx
*/
constructor(gameService, ctx) {
super(gameService, ctx, 0);
this.characters = [];
}
/**
* Draw evenything necessary
*/
draw() {
let offset = 0;
if (this.isImageLoaded) {
this.characters.map((imageData) => {
this.ctx.save();
this.ctx.translate(this.x + offset, this.y);
this.ctx.scale(this.assetScale.x, this.assetScale.y);
this.ctx.drawImage(imageData.imageSource, imageData.x, imageData.y);
this.ctx.restore();
offset += 2.5 * BLOCK_SIZE;
});
}
}
/**
* Animate the bomb
*/
animate() {
this.draw();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcmFjdGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJpc20vc3JjL2xpYi90ZXh0L2NoYXJhY3Rlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRzlEOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixjQUFlLFNBQVEsVUFBVTtJQU1yRDs7OztPQUlHO0lBQ0gsWUFBWSxXQUF3QixFQUFFLEdBQTZCO1FBQ2pFLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNPLElBQUk7UUFDWixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDZixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUE2QixFQUFFLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFFbkIsTUFBTSxJQUFJLEdBQUcsR0FBRyxVQUFVLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYW1lU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvZ2FtZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFzc2V0Q2xhc3MgfSBmcm9tICcuLi9hc3NldC9hc3NldC5jbGFzcyc7XG5pbXBvcnQgeyBCTE9DS19TSVpFIH0gZnJvbSAnLi4vZ2FtZWJvYXJkL2dhbWVib2FyZC1jb25zdGFudHMnO1xuaW1wb3J0IHsgSW1hZ2VMb2NhdGlvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvaW1hZ2UvaW1hZ2UtbG9jYXRpb24ubW9kZWwnO1xuXG4vKipcbiAqIFRoZSBDaGFyYWN0ZXIgQ2xhc3NcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENoYXJhY3RlckNsYXNzIGV4dGVuZHMgQXNzZXRDbGFzcyB7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBjaGFyYWN0ZXJzXG4gICAqL1xuICBwcm90ZWN0ZWQgY2hhcmFjdGVyczogSW1hZ2VMb2NhdGlvbk1vZGVsW107XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBnYW1lU2VydmljZSBUaGUgR2FtZVNlcnZpY2VcbiAgICogQHBhcmFtIGN0eCBUaGUgY3R4XG4gICAqL1xuICBjb25zdHJ1Y3RvcihnYW1lU2VydmljZTogR2FtZVNlcnZpY2UsIGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSB7XG4gICAgc3VwZXIoZ2FtZVNlcnZpY2UsIGN0eCwgMCk7XG4gICAgdGhpcy5jaGFyYWN0ZXJzID0gW107XG4gIH1cblxuICAvKipcbiAgICogRHJhdyBldmVueXRoaW5nIG5lY2Vzc2FyeVxuICAgKi9cbiAgcHJvdGVjdGVkIGRyYXcoKTogdm9pZCB7XG4gICAgbGV0IG9mZnNldCA9IDA7XG4gICAgaWYgKHRoaXMuaXNJbWFnZUxvYWRlZCkge1xuICAgICAgdGhpcy5jaGFyYWN0ZXJzLm1hcCgoaW1hZ2VEYXRhOiBJbWFnZUxvY2F0aW9uTW9kZWwpID0+IHtcbiAgICAgICAgdGhpcy5jdHguc2F2ZSgpO1xuICAgICAgICB0aGlzLmN0eC50cmFuc2xhdGUodGhpcy54ICsgb2Zmc2V0LCB0aGlzLnkpO1xuICAgICAgICB0aGlzLmN0eC5zY2FsZSh0aGlzLmFzc2V0U2NhbGUueCwgdGhpcy5hc3NldFNjYWxlLnkpO1xuICAgICAgICB0aGlzLmN0eC5kcmF3SW1hZ2UoaW1hZ2VEYXRhLmltYWdlU291cmNlLCBpbWFnZURhdGEueCwgaW1hZ2VEYXRhLnkpO1xuICAgICAgICB0aGlzLmN0eC5yZXN0b3JlKCk7XG5cbiAgICAgICAgb2Zmc2V0ICs9IDIuNSAqIEJMT0NLX1NJWkU7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQW5pbWF0ZSB0aGUgYm9tYlxuICAgKi9cbiAgcHVibGljIGFuaW1hdGUoKTogdm9pZCB7XG4gICAgdGhpcy5kcmF3KCk7XG4gIH1cbn1cbiJdfQ==