UNPKG

excalibur

Version:

Excalibur.js is a simple JavaScript game engine with TypeScript bindings for making 2D games in HTML5 Canvas. Our mission is to make web game development as simple as possible.

76 lines (75 loc) 2.71 kB
import { EventEmitter } from '../EventEmitter'; import { GlobalCoordinates } from '../Math'; import { PointerEventReceiver } from './PointerEventReceiver'; /** * Signals that an object has nested pointer events on nested objects that are not an Entity with * a PointerComponent. For example TileMap Tiles */ export interface HasNestedPointerEvents { _dispatchPointerEvents(receiver: PointerEventReceiver): void; _processPointerToObject(receiver: PointerEventReceiver): void; } export declare class PointerTargetObjectProxy<TObject extends { events: EventEmitter; }> { object: TObject; contains: (point: GlobalCoordinates) => boolean; active: () => boolean; get events(): EventEmitter; init(object: TObject, contains: (point: GlobalCoordinates) => boolean, active: () => boolean): void; } export declare class PointerEventsToObjectDispatcher<TObject extends { events: EventEmitter; }> { private _proxyPool; private _objectToProxy; private _proxies; /** * Tracks an object to associate with pointers and their events * @param object * @param contains * @param active */ addObject(object: TObject, contains: (point: GlobalCoordinates) => boolean, active: () => boolean): void; private _getProxy; /** * Untracks an object associated with pointers and their events * @param object */ removeObject(object: TObject): void; private _lastFrameObjectToPointers; private _currentFrameObjectToPointers; private _objectCurrentlyUnderPointer; private _objectWasUnderPointer; private _entered; private _left; /** * Manually associate a pointer id with an object. * * This assumes you've checked that the pointer is indeed over the object. */ addPointerToObject(object: TObject, pointerId: number): void; private _addPointerToProxy; /** * Dispatches the appropriate pointer events in sortedObject order on tracked objects * @param receiver * @param sortedObjects */ dispatchEvents(receiver: PointerEventReceiver, sortedObjects: TObject[]): void; /** * Given the tracked objects, update pointer containment given the provided contains() * @param receiver * @param objects */ processPointerToObject(receiver: PointerEventReceiver, objects: TObject[]): void; /** * Clear current frames pointer-object associations and track last frame pointer-object associations */ clear(): void; private _processDownAndEmit; private _processUpAndEmit; private _processMoveAndEmit; private _processEnterLeaveAndEmit; private _processCancelAndEmit; private _processWheelAndEmit; }