bp-prism-game
Version:
The BP Prism Game
67 lines • 9.54 kB
JavaScript
import { SceneryClass } from '../scenery.class';
import { ImageLoadedEnum } from '../../enum/image-loaded.enum';
import { GameAssetEnum } from '../../enum/game-assets.enum';
/**
* The Rock Class
*/
export class RockClass extends SceneryClass {
/**
* Constructor
* @param gameService The GameService
* @param ctx The ctx
* @param guid The guid of the alien
*/
constructor(gameService, ctx, guid) {
super(gameService, ctx, guid, ImageLoadedEnum.rock);
this.type = GameAssetEnum.rock;
this.loadRockImages();
this.assetScale = {
x: 0.2,
y: 0.2
};
}
/**
* Load the Rock Images
*/
loadRockImages() {
const imagesToLoad = [ImageLoadedEnum.rock, ImageLoadedEnum.rockGround];
imagesToLoad.map((key) => {
this.images.push(this.gameService.getImage(key));
this.isImageLoaded = true;
});
}
/**
* Draw everything necessary
*/
draw() {
if (this.isImageLoaded) {
this.ctx.save();
this.ctx.translate(this.x, this.y);
this.ctx.scale(this.assetScale.x, this.assetScale.y);
this.ctx.scale(0.5, 0.5);
this.ctx.drawImage(this.images[0].imageSource, 19, -12);
this.ctx.restore();
this.ctx.save();
this.ctx.translate(this.x, this.y);
this.ctx.scale(this.assetScale.x, this.assetScale.y);
// this.ctx.drawImage(this.images[1].imageSource, 0, 0);
this.ctx.scale(0.75, 0.75);
this.ctx.drawImage(this.images[0].imageSource, 12, -5);
this.ctx.drawImage(this.images[0].imageSource, -4, -10);
this.ctx.restore();
this.ctx.save();
this.ctx.translate(this.x, this.y);
this.ctx.scale(this.assetScale.x, this.assetScale.y);
this.ctx.scale(0.5, 0.5);
this.ctx.drawImage(this.images[0].imageSource, -6, 5);
this.ctx.drawImage(this.images[0].imageSource, 29, 18);
this.ctx.restore();
this.ctx.save();
this.ctx.translate(this.x, this.y);
this.ctx.scale(this.assetScale.x, this.assetScale.y);
this.ctx.drawImage(this.images[0].imageSource, -4, 2);
this.ctx.restore();
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9jay5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByaXNtL3NyYy9saWIvc2NlbmVyeS9yb2NrL3JvY2suY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBVSxTQUFRLFlBQVk7SUFDekM7Ozs7O09BS0c7SUFDSCxZQUFZLFdBQXdCLEVBQUUsR0FBNkIsRUFBRSxJQUFZO1FBQy9FLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBRS9CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLENBQUMsRUFBRSxHQUFHO1lBQ04sQ0FBQyxFQUFFLEdBQUc7U0FDWSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDcEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4RSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBb0IsRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFD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QUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhbWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9nYW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NlbmVyeUNsYXNzIH0gZnJvbSAnLi4vc2NlbmVyeS5jbGFzcyc7XG5pbXBvcnQgeyBBc3NldFNjYWxlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbC9hc3NldC1zY2FsZS5tb2RlJztcbmltcG9ydCB7IEltYWdlTG9hZGVkRW51bSB9IGZyb20gJy4uLy4uL2VudW0vaW1hZ2UtbG9hZGVkLmVudW0nO1xuaW1wb3J0IHsgR2FtZUFzc2V0RW51bSB9IGZyb20gJy4uLy4uL2VudW0vZ2FtZS1hc3NldHMuZW51bSc7XG5cbi8qKlxuICogVGhlIFJvY2sgQ2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIFJvY2tDbGFzcyBleHRlbmRzIFNjZW5lcnlDbGFzcyB7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0gZ2FtZVNlcnZpY2UgVGhlIEdhbWVTZXJ2aWNlXG4gICAqIEBwYXJhbSBjdHggVGhlIGN0eFxuICAgKiBAcGFyYW0gZ3VpZCBUaGUgZ3VpZCBvZiB0aGUgYWxpZW5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGdhbWVTZXJ2aWNlOiBHYW1lU2VydmljZSwgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsIGd1aWQ6IG51bWJlcikge1xuICAgIHN1cGVyKGdhbWVTZXJ2aWNlLCBjdHgsIGd1aWQsIEltYWdlTG9hZGVkRW51bS5yb2NrKTtcblxuICAgIHRoaXMudHlwZSA9IEdhbWVBc3NldEVudW0ucm9jaztcblxuICAgIHRoaXMubG9hZFJvY2tJbWFnZXMoKTtcblxuICAgIHRoaXMuYXNzZXRTY2FsZSA9IHtcbiAgICAgIHg6IDAuMixcbiAgICAgIHk6IDAuMlxuICAgIH0gYXMgQXNzZXRTY2FsZU1vZGVsO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIFJvY2sgSW1hZ2VzXG4gICAqL1xuICBwcml2YXRlIGxvYWRSb2NrSW1hZ2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGltYWdlc1RvTG9hZCA9IFtJbWFnZUxvYWRlZEVudW0ucm9jaywgSW1hZ2VMb2FkZWRFbnVtLnJvY2tHcm91bmRdO1xuXG4gICAgaW1hZ2VzVG9Mb2FkLm1hcCgoa2V5OiBJbWFnZUxvYWRlZEVudW0pID0+IHtcbiAgICAgIHRoaXMuaW1hZ2VzLnB1c2godGhpcy5nYW1lU2VydmljZS5nZXRJbWFnZShrZXkpKTtcbiAgICAgIHRoaXMuaXNJbWFnZUxvYWRlZCA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRHJhdyBldmVyeXRoaW5nIG5lY2Vzc2FyeVxuICAgKi9cbiAgcHJvdGVjdGVkIGRyYXcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNJbWFnZUxvYWRlZCkge1xuICAgICAgdGhpcy5jdHguc2F2ZSgpO1xuICAgICAgdGhpcy5jdHgudHJhbnNsYXRlKHRoaXMueCwgdGhpcy55KTtcbiAgICAgIHRoaXMuY3R4LnNjYWxlKHRoaXMuYXNzZXRTY2FsZS54LCB0aGlzLmFzc2V0U2NhbGUueSk7XG4gICAgICB0aGlzLmN0eC5zY2FsZSgwLjUsIDAuNSk7XG4gICAgICB0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5pbWFnZXNbMF0uaW1hZ2VTb3VyY2UsIDE5LCAtMTIpO1xuICAgICAgdGhpcy5jdHgucmVzdG9yZSgpO1xuXG4gICAgICB0aGlzLmN0eC5zYXZlKCk7XG4gICAgICB0aGlzLmN0eC50cmFuc2xhdGUodGhpcy54LCB0aGlzLnkpO1xuICAgICAgdGhpcy5jdHguc2NhbGUodGhpcy5hc3NldFNjYWxlLngsIHRoaXMuYXNzZXRTY2FsZS55KTtcbiAgICAgIC8vIHRoaXMuY3R4LmRyYXdJbWFnZSh0aGlzLmltYWdlc1sxXS5pbWFnZVNvdXJjZSwgMCwgMCk7XG4gICAgICB0aGlzLmN0eC5zY2FsZSgwLjc1LCAwLjc1KTtcbiAgICAgIHRoaXMuY3R4LmRyYXdJbWFnZSh0aGlzLmltYWdlc1swXS5pbWFnZVNvdXJjZSwgMTIsIC01KTtcbiAgICAgIHRoaXMuY3R4LmRyYXdJbWFnZSh0aGlzLmltYWdlc1swXS5pbWFnZVNvdXJjZSwgLTQsIC0xMCk7XG4gICAgICB0aGlzLmN0eC5yZXN0b3JlKCk7XG5cbiAgICAgIHRoaXMuY3R4LnNhdmUoKTtcblxuICAgICAgdGhpcy5jdHgudHJhbnNsYXRlKHRoaXMueCwgdGhpcy55KTtcbiAgICAgIHRoaXMuY3R4LnNjYWxlKHRoaXMuYXNzZXRTY2FsZS54LCB0aGlzLmFzc2V0U2NhbGUueSk7XG4gICAgICB0aGlzLmN0eC5zY2FsZSgwLjUsIDAuNSk7XG4gICAgICB0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5pbWFnZXNbMF0uaW1hZ2VTb3VyY2UsIC02LCA1KTtcbiAgICAgIHRoaXMuY3R4LmRyYXdJbWFnZSh0aGlzLmltYWdlc1swXS5pbWFnZVNvdXJjZSwgMjksIDE4KTtcbiAgICAgIHRoaXMuY3R4LnJlc3RvcmUoKTtcblxuICAgICAgdGhpcy5jdHguc2F2ZSgpO1xuICAgICAgdGhpcy5jdHgudHJhbnNsYXRlKHRoaXMueCwgdGhpcy55KTtcbiAgICAgIHRoaXMuY3R4LnNjYWxlKHRoaXMuYXNzZXRTY2FsZS54LCB0aGlzLmFzc2V0U2NhbGUueSk7XG4gICAgICB0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5pbWFnZXNbMF0uaW1hZ2VTb3VyY2UsIC00LCAyKTtcbiAgICAgIHRoaXMuY3R4LnJlc3RvcmUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==