bp-prism-game
Version:
The BP Prism Game
46 lines • 4.93 kB
JavaScript
import { AssetClass } from '../asset/asset.class';
/**
* The Scenery Class
*/
export class SceneryClass extends AssetClass {
/**
* Constructor
* @param gameService The GameService
* @param ctx The ctx
* @param guid The guid of the scenery
* @param imageType The animation number of the scenery
*/
constructor(gameService, ctx, guid, imageType) {
super(gameService, ctx, guid, imageType);
}
/**
* Get the type
*/
getType() {
return this.type;
}
/**
* Draw everything necessary
*/
draw() {
if (this.isImageLoaded) {
this.images.map((imageData) => {
this.ctx.save();
this.ctx.translate(this.x, this.y);
this.ctx.scale(this.assetScale.x, this.assetScale.y);
if (imageData.isRotate) {
this.ctx.rotate(this.gameService.getRadians(imageData.rotate));
}
this.ctx.drawImage(imageData.imageSource, imageData.x, imageData.y);
this.ctx.restore();
});
}
}
/**
* Animate the Scenery
*/
animate() {
this.draw();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmVyeS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByaXNtL3NyYy9saWIvc2NlbmVyeS9zY2VuZXJ5LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUtsRDs7R0FFRztBQUNILE1BQU0sT0FBZ0IsWUFBYSxTQUFRLFVBQVU7SUFLbkQ7Ozs7OztPQU1HO0lBQ0gsWUFBWSxXQUF3QixFQUFFLEdBQTZCLEVBQUUsSUFBWSxFQUFFLFNBQTBCO1FBQzNHLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNPLElBQUk7UUFDWixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUE2QixFQUFFLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2lCQUNoRTtnQkFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2FtZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2dhbWUuc2VydmljZSc7XG5pbXBvcnQgeyBBc3NldENsYXNzIH0gZnJvbSAnLi4vYXNzZXQvYXNzZXQuY2xhc3MnO1xuaW1wb3J0IHsgSW1hZ2VMb2NhdGlvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvaW1hZ2UvaW1hZ2UtbG9jYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgSW1hZ2VMb2FkZWRFbnVtIH0gZnJvbSAnLi4vZW51bS9pbWFnZS1sb2FkZWQuZW51bSc7XG5pbXBvcnQgeyBHYW1lQXNzZXRFbnVtIH0gZnJvbSAnLi4vZW51bS9nYW1lLWFzc2V0cy5lbnVtJztcblxuLyoqXG4gKiBUaGUgU2NlbmVyeSBDbGFzc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2NlbmVyeUNsYXNzIGV4dGVuZHMgQXNzZXRDbGFzcyB7XG4gIC8qKlxuICAgKiBTY2VuZXJ5IFR5cGVcbiAgICovXG4gIHByb3RlY3RlZCB0eXBlOiBHYW1lQXNzZXRFbnVtO1xuICAvKipcbiAgICogQ29uc3RydWN0b3JcbiAgICogQHBhcmFtIGdhbWVTZXJ2aWNlIFRoZSBHYW1lU2VydmljZVxuICAgKiBAcGFyYW0gY3R4IFRoZSBjdHhcbiAgICogQHBhcmFtIGd1aWQgVGhlIGd1aWQgb2YgdGhlIHNjZW5lcnlcbiAgICogQHBhcmFtIGltYWdlVHlwZSBUaGUgYW5pbWF0aW9uIG51bWJlciBvZiB0aGUgc2NlbmVyeVxuICAgKi9cbiAgY29uc3RydWN0b3IoZ2FtZVNlcnZpY2U6IEdhbWVTZXJ2aWNlLCBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgZ3VpZDogbnVtYmVyLCBpbWFnZVR5cGU6IEltYWdlTG9hZGVkRW51bSkge1xuICAgIHN1cGVyKGdhbWVTZXJ2aWNlLCBjdHgsIGd1aWQsIGltYWdlVHlwZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB0eXBlXG4gICAqL1xuICBwdWJsaWMgZ2V0VHlwZSgpOiBHYW1lQXNzZXRFbnVtIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgLyoqXG4gICAqIERyYXcgZXZlcnl0aGluZyBuZWNlc3NhcnlcbiAgICovXG4gIHByb3RlY3RlZCBkcmF3KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzSW1hZ2VMb2FkZWQpIHtcbiAgICAgIHRoaXMuaW1hZ2VzLm1hcCgoaW1hZ2VEYXRhOiBJbWFnZUxvY2F0aW9uTW9kZWwpID0+IHtcbiAgICAgICAgdGhpcy5jdHguc2F2ZSgpO1xuICAgICAgICB0aGlzLmN0eC50cmFuc2xhdGUodGhpcy54LCB0aGlzLnkpO1xuICAgICAgICB0aGlzLmN0eC5zY2FsZSh0aGlzLmFzc2V0U2NhbGUueCwgdGhpcy5hc3NldFNjYWxlLnkpO1xuICAgICAgICBpZiAoaW1hZ2VEYXRhLmlzUm90YXRlKSB7XG4gICAgICAgICAgdGhpcy5jdHgucm90YXRlKHRoaXMuZ2FtZVNlcnZpY2UuZ2V0UmFkaWFucyhpbWFnZURhdGEucm90YXRlKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdHguZHJhd0ltYWdlKGltYWdlRGF0YS5pbWFnZVNvdXJjZSwgaW1hZ2VEYXRhLngsIGltYWdlRGF0YS55KTtcbiAgICAgICAgdGhpcy5jdHgucmVzdG9yZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFuaW1hdGUgdGhlIFNjZW5lcnlcbiAgICovXG4gIHB1YmxpYyBhbmltYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZHJhdygpO1xuICB9XG59XG4iXX0=