bp-prism-game
Version:
The BP Prism Game
49 lines • 6.06 kB
JavaScript
import { SceneryClass } from '../scenery.class';
import { ImageLoadedEnum } from '../../enum/image-loaded.enum';
import { GameAssetEnum } from '../../enum/game-assets.enum';
/**
* The Tree Class
*/
export class TreeClass 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.tree);
this.type = GameAssetEnum.tree;
this.loadTreeImages();
this.assetScale = {
x: 0.2,
y: 0.2
};
}
/**
* Load the Tree Images
*/
loadTreeImages() {
const imagesToLoad = [ImageLoadedEnum.tree, ImageLoadedEnum.treeGround];
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.drawImage(this.images[1].imageSource, 0, 0);
this.ctx.drawImage(this.images[0].imageSource, -8, -15);
this.ctx.drawImage(this.images[0].imageSource, 5, -10);
this.ctx.drawImage(this.images[0].imageSource, -4, 0);
this.ctx.restore();
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByaXNtL3NyYy9saWIvc2NlbmVyeS90cmVlL3RyZWUuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBVSxTQUFRLFlBQVk7SUFDekM7Ozs7O09BS0c7SUFDSCxZQUFZLFdBQXdCLEVBQUUsR0FBNkIsRUFBRSxJQUFZO1FBQy9FLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBRS9CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLENBQUMsRUFBRSxHQUFHO1lBQ04sQ0FBQyxFQUFFLEdBQUc7U0FDWSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDcEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4RSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBb0IsRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxJQUFJO1FBQ1osSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2FtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2dhbWUuc2VydmljZSc7XG5pbXBvcnQgeyBTY2VuZXJ5Q2xhc3MgfSBmcm9tICcuLi9zY2VuZXJ5LmNsYXNzJztcbmltcG9ydCB7IEFzc2V0U2NhbGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVsL2Fzc2V0LXNjYWxlLm1vZGUnO1xuaW1wb3J0IHsgSW1hZ2VMb2FkZWRFbnVtIH0gZnJvbSAnLi4vLi4vZW51bS9pbWFnZS1sb2FkZWQuZW51bSc7XG5pbXBvcnQgeyBHYW1lQXNzZXRFbnVtIH0gZnJvbSAnLi4vLi4vZW51bS9nYW1lLWFzc2V0cy5lbnVtJztcblxuLyoqXG4gKiBUaGUgVHJlZSBDbGFzc1xuICovXG5leHBvcnQgY2xhc3MgVHJlZUNsYXNzIGV4dGVuZHMgU2NlbmVyeUNsYXNzIHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqIEBwYXJhbSBnYW1lU2VydmljZSBUaGUgR2FtZVNlcnZpY2VcbiAgICogQHBhcmFtIGN0eCBUaGUgY3R4XG4gICAqIEBwYXJhbSBndWlkIFRoZSBndWlkIG9mIHRoZSBhbGllblxuICAgKi9cbiAgY29uc3RydWN0b3IoZ2FtZVNlcnZpY2U6IEdhbWVTZXJ2aWNlLCBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgZ3VpZDogbnVtYmVyKSB7XG4gICAgc3VwZXIoZ2FtZVNlcnZpY2UsIGN0eCwgZ3VpZCwgSW1hZ2VMb2FkZWRFbnVtLnRyZWUpO1xuXG4gICAgdGhpcy50eXBlID0gR2FtZUFzc2V0RW51bS50cmVlO1xuXG4gICAgdGhpcy5sb2FkVHJlZUltYWdlcygpO1xuXG4gICAgdGhpcy5hc3NldFNjYWxlID0ge1xuICAgICAgeDogMC4yLFxuICAgICAgeTogMC4yXG4gICAgfSBhcyBBc3NldFNjYWxlTW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgVHJlZSBJbWFnZXNcbiAgICovXG4gIHByaXZhdGUgbG9hZFRyZWVJbWFnZXMoKTogdm9pZCB7XG4gICAgY29uc3QgaW1hZ2VzVG9Mb2FkID0gW0ltYWdlTG9hZGVkRW51bS50cmVlLCBJbWFnZUxvYWRlZEVudW0udHJlZUdyb3VuZF07XG5cbiAgICBpbWFnZXNUb0xvYWQubWFwKChrZXk6IEltYWdlTG9hZGVkRW51bSkgPT4ge1xuICAgICAgdGhpcy5pbWFnZXMucHVzaCh0aGlzLmdhbWVTZXJ2aWNlLmdldEltYWdlKGtleSkpO1xuICAgICAgdGhpcy5pc0ltYWdlTG9hZGVkID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEcmF3IGV2ZXJ5dGhpbmcgbmVjZXNzYXJ5XG4gICAqL1xuICBwcm90ZWN0ZWQgZHJhdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0ltYWdlTG9hZGVkKSB7XG4gICAgICB0aGlzLmN0eC5zYXZlKCk7XG4gICAgICB0aGlzLmN0eC50cmFuc2xhdGUodGhpcy54LCB0aGlzLnkpO1xuICAgICAgdGhpcy5jdHguc2NhbGUodGhpcy5hc3NldFNjYWxlLngsIHRoaXMuYXNzZXRTY2FsZS55KTtcbiAgICAgIHRoaXMuY3R4LmRyYXdJbWFnZSh0aGlzLmltYWdlc1sxXS5pbWFnZVNvdXJjZSwgMCwgMCk7XG4gICAgICB0aGlzLmN0eC5kcmF3SW1hZ2UodGhpcy5pbWFnZXNbMF0uaW1hZ2VTb3VyY2UsIC04LCAtMTUpO1xuICAgICAgdGhpcy5jdHguZHJhd0ltYWdlKHRoaXMuaW1hZ2VzWzBdLmltYWdlU291cmNlLCA1LCAtMTApO1xuICAgICAgdGhpcy5jdHguZHJhd0ltYWdlKHRoaXMuaW1hZ2VzWzBdLmltYWdlU291cmNlLCAtNCwgMCk7XG4gICAgICB0aGlzLmN0eC5yZXN0b3JlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=