bp-space-invaders
Version:
The BP Space Invaders Game
49 lines (48 loc) • 2.08 kB
TypeScript
import { IAsset } from '../interface/asset.interface';
import { GameService } from '../service/game.service';
import { AssetAlignEnum } from './enum/asset-align.enum';
import { AssetAlignVerticalEnum } from './enum/asset-align-vertical.enum';
import { ObservableModel } from '../model/observable.model';
import { TimerModel } from '../model/timer.model';
import { BoundaryModel } from '../model/boundary.model';
import { BoundarySetupModel } from '../model/boundary-set.model';
export declare abstract class AssetClass implements IAsset {
protected gameService: GameService;
protected ctx: CanvasRenderingContext2D;
protected boundarySetup: BoundarySetupModel;
protected uid: number;
shape: number[][];
x: number;
y: number;
isAnimateOnce: boolean;
protected assetAnimation: number[][];
protected destructionAnimation: number[][];
protected engineAnimation: number[][];
protected requestId: number;
protected destructionRequestId: number;
protected assetTimer: TimerModel;
protected destructionTimer: TimerModel;
protected engineTimer: TimerModel;
protected engineXOffset: number;
protected engineYOffset: number;
protected animationCounter: number;
protected destructionAnimationCounter: number;
protected engineAnimationCounter: number;
protected boundary: BoundaryModel;
isDestroyed: boolean;
protected isGameOver: boolean;
protected isGamePaused: boolean;
protected assetAnimations: number[][][];
protected engineAnimations: number[][][];
protected destructionAnimations: number[][][];
constructor(gameService: GameService, ctx: CanvasRenderingContext2D, boundarySetup: BoundarySetupModel, uid: number);
init(): void;
getAssetHeight(): number;
getAssetWidth(): number;
positionAsset(alignPosition: AssetAlignEnum, justifyPosition: AssetAlignVerticalEnum): IAsset;
protected processKeyStroke(event: ObservableModel): void;
protected spawn(): void;
restore(): void;
move(asset: IAsset): void;
protected stopAnimation(): boolean;
}