fisk-engine
Version:
Typescript based HTML5 game engine
70 lines (69 loc) • 2.49 kB
TypeScript
import GameEntity from "../interfaces/GameEntity";
import iGameStage from "../interfaces/GameStage";
import ImageMap from "../interfaces/ImageMap";
import SoundMap from "../interfaces/SoundMap";
import GameConfig from "../configs/GameConfig";
import SoundConfig from "../interfaces/SoundConfig";
export default class FiskGame {
height: number;
width: number;
canvas: HTMLCanvasElement;
context: CanvasRenderingContext2D | null;
ctx: CanvasRenderingContext2D;
player: any;
customCollision: (a: GameEntity, b: GameEntity) => any | null;
currentStage: iGameStage | undefined;
imagesLoaded: number;
totalImages: number;
images: ImageMap;
soundsLoaded: number;
totalSounds: number;
sounds: SoundMap;
soundNames: string[];
currentKeys: string[];
stageData: {
[key: string]: {};
};
onReady: (game: FiskGame) => void;
logicLoop: number | undefined;
audioContext: AudioContext;
firstInteract: boolean;
constructor({ height, width, images, sounds, selector, imageSmoothing, stageData, onReady, customCollision, }?: GameConfig);
checkFirstInteract(): void;
onKeydown(event: KeyboardEvent): void;
onKeyup(event: KeyboardEvent): void;
setupKeyboardBinding(): void;
stopAllSounds(): void;
preloadImages(arr: string[], callback: () => void): void;
preloadSounds(arr: SoundConfig[], callback: () => void): void;
preloadData(arr: string[], callback: () => void): void;
get scale(): number;
updateScale(): void;
bindScreenResize(): void;
getClick(event: MouseEvent): {
x: number;
y: number;
width: number;
height: number;
};
getTouch(event: TouchEvent, game: FiskGame): {
x: number;
y: number;
width: number;
height: number;
};
onClick(event: MouseEvent): void;
onTouch(event: TouchEvent): void;
onMouseMove(event: MouseEvent): void;
onMouseUp(event: MouseEvent): void;
onMouseDown(event: MouseEvent): void;
onTouchMove(event: TouchEvent): void;
onTouchEnd(event: TouchEvent): void;
bindClick(): void;
createMainCanvas(selector: string): HTMLCanvasElement;
setImageSmoothing(smoothing: boolean): void;
render(): void;
collisionCheck(a: GameEntity, b: GameEntity): boolean | any;
simpleCollisionCheck(a: GameEntity, b: GameEntity): boolean;
logic(): void;
}