bp-prism-game
Version:
The BP Prism Game
65 lines • 6.5 kB
JavaScript
import { AssetClass } from '../../asset/asset.class';
import { ImageLoadedEnum } from '../../enum/image-loaded.enum';
/**
* The Prism Blast Icon Class
*/
export class PrismBlastIconClass extends AssetClass {
/**
* Constructor
* @param gameService The GameService
* @param ctx The ctx
* @param guid The guid of the prism blast
*/
constructor(gameService, ctx) {
super(gameService, ctx, 1);
this.loadIconImages();
this.assetScale = {
x: 0.1,
y: 0.1
};
}
/**
* Load the Letter Images
*/
loadIconImages() {
const imagesToLoad = [ImageLoadedEnum.prismBlastIcon];
imagesToLoad.map((key) => {
this.images.push(this.gameService.getImage(key));
this.isImageLoaded = true;
});
}
/**
* Position the icon
* @param position The position of the icon
* Load the Letter Images
*/
position(position) {
this.move(position);
}
/**
* Draw evenything necessary
*/
draw() {
let offset = 0;
if (this.isImageLoaded) {
this.images.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 += 25;
}
}
/**
* Animate the prism blast
*/
animate() {
if (this.isDestroyed) {
return;
}
this.draw();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpc20tYmxhc3QtaWNvbi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByaXNtL3NyYy9saWIvcHJpc20vcHJpc20tYmxhc3QtaWNvbi9wcmlzbS1ibGFzdC1pY29uLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFJL0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsVUFBVTtJQUNqRDs7Ozs7T0FLRztJQUNILFlBQVksV0FBd0IsRUFBRSxHQUE2QjtRQUNqRSxLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLFVBQVUsR0FBRztZQUNoQixDQUFDLEVBQUUsR0FBRztZQUNOLENBQUMsRUFBRSxHQUFHO1NBQ1ksQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxjQUFjO1FBQ3BCLE1BQU0sWUFBWSxHQUFHLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXRELFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFvQixFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksUUFBUSxDQUFDLFFBQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ08sSUFBSTtRQUNaLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQTZCLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxJQUFJLEVBQUUsQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYW1lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvZ2FtZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFzc2V0Q2xhc3MgfSBmcm9tICcuLi8uLi9hc3NldC9hc3NldC5jbGFzcyc7XG5pbXBvcnQgeyBBc3NldFNjYWxlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbC9hc3NldC1zY2FsZS5tb2RlJztcbmltcG9ydCB7IEltYWdlTG9hZGVkRW51bSB9IGZyb20gJy4uLy4uL2VudW0vaW1hZ2UtbG9hZGVkLmVudW0nO1xuaW1wb3J0IHsgSW1hZ2VMb2NhdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWwvaW1hZ2UvaW1hZ2UtbG9jYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgSUFzc2V0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL2Fzc2V0LmludGVyZmFjZSc7XG5cbi8qKlxuICogVGhlIFByaXNtIEJsYXN0IEljb24gQ2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIFByaXNtQmxhc3RJY29uQ2xhc3MgZXh0ZW5kcyBBc3NldENsYXNzIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBnYW1lU2VydmljZSBUaGUgR2FtZVNlcnZpY2VcbiAgICogQHBhcmFtIGN0eCBUaGUgY3R4XG4gICAqIEBwYXJhbSBndWlkIFRoZSBndWlkIG9mIHRoZSBwcmlzbSBibGFzdFxuICAgKi9cbiAgY29uc3RydWN0b3IoZ2FtZVNlcnZpY2U6IEdhbWVTZXJ2aWNlLCBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkge1xuICAgIHN1cGVyKGdhbWVTZXJ2aWNlLCBjdHgsIDEpO1xuXG4gICAgdGhpcy5sb2FkSWNvbkltYWdlcygpO1xuXG4gICAgdGhpcy5hc3NldFNjYWxlID0ge1xuICAgICAgeDogMC4xLFxuICAgICAgeTogMC4xXG4gICAgfSBhcyBBc3NldFNjYWxlTW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgTGV0dGVyIEltYWdlc1xuICAgKi9cbiAgcHJpdmF0ZSBsb2FkSWNvbkltYWdlcygpOiB2b2lkIHtcbiAgICBjb25zdCBpbWFnZXNUb0xvYWQgPSBbSW1hZ2VMb2FkZWRFbnVtLnByaXNtQmxhc3RJY29uXTtcblxuICAgIGltYWdlc1RvTG9hZC5tYXAoKGtleTogSW1hZ2VMb2FkZWRFbnVtKSA9PiB7XG4gICAgICB0aGlzLmltYWdlcy5wdXNoKHRoaXMuZ2FtZVNlcnZpY2UuZ2V0SW1hZ2Uoa2V5KSk7XG4gICAgICB0aGlzLmlzSW1hZ2VMb2FkZWQgPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIHRoZSBpY29uXG4gICAqIEBwYXJhbSBwb3NpdGlvbiBUaGUgcG9zaXRpb24gb2YgdGhlIGljb25cbiAgICogTG9hZCB0aGUgTGV0dGVyIEltYWdlc1xuICAgKi9cbiAgcHVibGljIHBvc2l0aW9uKHBvc2l0aW9uOiBJQXNzZXQpOiB2b2lkIHtcbiAgICB0aGlzLm1vdmUocG9zaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIERyYXcgZXZlbnl0aGluZyBuZWNlc3NhcnlcbiAgICovXG4gIHByb3RlY3RlZCBkcmF3KCk6IHZvaWQge1xuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGlmICh0aGlzLmlzSW1hZ2VMb2FkZWQpIHtcbiAgICAgIHRoaXMuaW1hZ2VzLm1hcCgoaW1hZ2VEYXRhOiBJbWFnZUxvY2F0aW9uTW9kZWwpID0+IHtcbiAgICAgICAgdGhpcy5jdHguc2F2ZSgpO1xuICAgICAgICB0aGlzLmN0eC50cmFuc2xhdGUodGhpcy54ICsgb2Zmc2V0LCB0aGlzLnkpO1xuICAgICAgICB0aGlzLmN0eC5zY2FsZSh0aGlzLmFzc2V0U2NhbGUueCwgdGhpcy5hc3NldFNjYWxlLnkpO1xuICAgICAgICB0aGlzLmN0eC5kcmF3SW1hZ2UoaW1hZ2VEYXRhLmltYWdlU291cmNlLCBpbWFnZURhdGEueCwgaW1hZ2VEYXRhLnkpO1xuICAgICAgICB0aGlzLmN0eC5yZXN0b3JlKCk7XG4gICAgICB9KTtcblxuICAgICAgb2Zmc2V0ICs9IDI1O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBbmltYXRlIHRoZSBwcmlzbSBibGFzdFxuICAgKi9cbiAgcHVibGljIGFuaW1hdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRyYXcoKTtcbiAgfVxufVxuIl19