Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

Implements

Index

Constructors

constructor

  • new GridCanvasRenderer(containerEl: HTMLElement, gridWidth: number, gridHeight: number): GridCanvasRenderer
  • Parameters

    • containerEl: HTMLElement
    • gridWidth: number

      The width of the grid, in tiles

    • gridHeight: number

      The height of the grid, in tiles

    Returns GridCanvasRenderer

Properties

Private canvas

canvas: HTMLCanvasElement

Private ctx

ctx: CanvasRenderingContext2D

Private dragging

dragging: boolean = false

Private internalListeners

internalListeners: Listener<ParseEventMap<HTMLElementEventMap>, keyof HTMLElementEventMap, [ev: Event] | [ev: ClipboardEvent] | [ev: UIEvent] | [ev: AnimationEvent] | [ev: MouseEvent] | [ev: InputEvent] | [ev: FocusEvent] | [ev: CompositionEvent] | [ev: DragEvent] | [ev: ErrorEvent] | [ev: FormDataEvent] | [ev: PointerEvent] | [ev: KeyboardEvent] | [ev: ProgressEvent<EventTarget>] | [ev: SecurityPolicyViolationEvent] | [ev: TouchEvent] | [ev: TransitionEvent] | [ev: WheelEvent], AnyEventTarget<ParseEventMap<HTMLElementEventMap>, keyof HTMLElementEventMap, [ev: Event] | [ev: ClipboardEvent] | [ev: UIEvent] | [ev: AnimationEvent] | [ev: MouseEvent] | [ev: InputEvent] | [ev: FocusEvent] | [ev: CompositionEvent] | [ev: DragEvent] | [ev: ErrorEvent] | [ev: FormDataEvent] | [ev: PointerEvent] | [ev: KeyboardEvent] | [ev: ProgressEvent<EventTarget>] | [ev: SecurityPolicyViolationEvent] | [ev: TouchEvent] | [ev: TransitionEvent] | [ev: WheelEvent]>>[] = []
internal

Private lastPlayheadX

lastPlayheadX: number = -1

Private lastView

lastView: null | { canvasHeight: number; canvasWidth: number; gridHeight: number; gridWidth: number } = null

Private mouseX

mouseX: number = NaN

Private mouseY

mouseY: number = NaN

Private particleSystem

particleSystem: ParticleSystem

Private spriteSheet

spriteSheet: null | SpriteSheet = null

Methods

addListener

dispose

  • dispose(): void

Private draw

  • draw(grid: IGrid, mouseX: number, mouseY: number): void
  • Draw the current state of the app to the canvas element.

    Parameters

    • grid: IGrid

      The grid to be rendered

    • mouseX: number

      The x position of the mouse on the canvas

    • mouseY: number

      The y position of the mouse on the canvas

    Returns void

emit

  • Calls each of the listeners registered for a given event.

    Type parameters

    Parameters

    Returns boolean

Private emitTileEvent

  • emitTileEvent(event: "tiledown" | "tilemove" | "tileup" | "tileclick"): void

eventNames

  • Return an array listing the events for which the emitter has registered listeners.

    Returns keyof GridRendererEventMap[]

Private getParticleHeatMap

  • getParticleHeatMap(grid: IGrid): readonly number[]
  • Gets the "heat" of every tile by calculating how many particles are on top of the tile

    Parameters

    Returns readonly number[]

    An array of numbers from 0 to 1, representing the "heat" of each tile

Private getSpriteSheet

Private listen

  • listen<P, Args, T>(target: T, event: P, listener: (...args: Args) => void): GridCanvasRenderer
  • Add an event listener to a listenable object and save everything needed for removing it later.

    internal

    Type parameters

    • P: keyof HTMLElementEventMap

    • Args: [ev: Event] | [ev: ClipboardEvent] | [ev: UIEvent] | [ev: AnimationEvent] | [ev: MouseEvent] | [ev: InputEvent] | [ev: FocusEvent] | [ev: CompositionEvent] | [ev: DragEvent] | [ev: ErrorEvent] | [ev: FormDataEvent] | [ev: PointerEvent] | [ev: KeyboardEvent] | [ev: ProgressEvent<EventTarget>] | [ev: SecurityPolicyViolationEvent] | [ev: TouchEvent] | [ev: TransitionEvent] | [ev: WheelEvent] = ParseEventMap<HTMLElementEventMap>[P]

    • T: AnyEventTarget<ParseEventMap<HTMLElementEventMap>, P, Args> = AnyEventTarget<ParseEventMap<HTMLElementEventMap>, P, Args>

    Parameters

    • target: T
    • event: P
    • listener: (...args: Args) => void
        • (...args: Args): void
        • Parameters

          • Rest ...args: Args

          Returns void

    Returns GridCanvasRenderer

listenerCount

  • Return the number of listeners listening to a given event.

    Parameters

    Returns number

listeners

  • Return the listeners registered for a given event.

    Type parameters

    Parameters

    • event: T

    Returns ((...args: ArgumentMap<GridRendererEventMap>[T]) => void)[]

off

on

once

pixelCoordsToTileCoords

  • pixelCoordsToTileCoords(x: number, y: number, gridWidth: number, gridHeight: number): false | [x: number, y: number]
  • Converts coordinates in "pixel space" to coordinates in "tile space". In essence, if you pass in an (x, y) position on the canvas, this returns the corresponding (x, y) position on the grid.

    Parameters

    • x: number

      The x position, in pixels, to get the corresponding grid position for

    • y: number

      The y position, in pixels, to get the corresponding grid position for

    • gridWidth: number

      The width of the grid, in grid tiles

    • gridHeight: number

      The height of the grid, in grid tiles

    Returns false | [x: number, y: number]

removeAllListeners

removeListener

resetCanvasMousePosition

  • resetCanvasMousePosition(): void
  • Resets the this.mouseX and this.mouseY variables. Call this when the mouse leaves the canvas or the screen is not being touched.

    Returns void

setSize

  • setSize(newWidth: number, newHeight: number): void

Private unlisten

  • unlisten<P, Args, T>(target: T, event: P, listener: (...args: Args) => void): GridCanvasRenderer
  • Remove a listener from a listenable object.

    internal

    Type parameters

    • P: keyof HTMLElementEventMap

    • Args: [ev: Event] | [ev: ClipboardEvent] | [ev: UIEvent] | [ev: AnimationEvent] | [ev: MouseEvent] | [ev: InputEvent] | [ev: FocusEvent] | [ev: CompositionEvent] | [ev: DragEvent] | [ev: ErrorEvent] | [ev: FormDataEvent] | [ev: PointerEvent] | [ev: KeyboardEvent] | [ev: ProgressEvent<EventTarget>] | [ev: SecurityPolicyViolationEvent] | [ev: TouchEvent] | [ev: TransitionEvent] | [ev: WheelEvent] = ParseEventMap<HTMLElementEventMap>[P]

    • T: AnyEventTarget<ParseEventMap<HTMLElementEventMap>, P, Args> = AnyEventTarget<ParseEventMap<HTMLElementEventMap>, P, Args>

    Parameters

    • target: T
    • event: P
    • listener: (...args: Args) => void
        • (...args: Args): void
        • Parameters

          • Rest ...args: Args

          Returns void

    Returns GridCanvasRenderer

update

  • update(grid: IGrid): void

updateCanvasMousePosition

  • updateCanvasMousePosition(e: MouseEvent | Touch): void
  • Updates the this.mouseX and this.mouseY variables based on where the mouse is on the canvas

    Parameters

    • e: MouseEvent | Touch

      The touch or click event that contains the new "mouse" position

    Returns void

Generated using TypeDoc