Skip to content
bg2 engine

Bg2MouseEvent

The Bg2MouseEvent class represents mouse input events in the bg2 engine TypeScript API. It extends EventBase, providing support for event propagation control.

This class encapsulates mouse interaction data such as button state, cursor position, and wheel delta, while also exposing the original native browser event.


Defines the mouse buttons:

export enum MouseButton {
LEFT = 0,
MIDDLE = 1,
RIGHT = 2,
NONE = -1
}

Defines the type of button event:

export enum MouseButtonEventType {
NONE = 0,
UP = 1,
DOWN = 2
}

constructor(button?: MouseButton, x?: number, y?: number, delta?: number, event?: any)

Section titled “constructor(button?: MouseButton, x?: number, y?: number, delta?: number, event?: any)”

Creates a new mouse event instance.

  • button: Mouse button involved in the event
  • x: Cursor X position (canvas-relative)
  • y: Cursor Y position (canvas-relative)
  • delta: Wheel delta value (used in wheel events)
  • event: Original native browser event

Mouse button associated with the event.


Horizontal position of the cursor relative to the canvas.


Vertical position of the cursor relative to the canvas.


Scroll delta value for wheel events.


Reference to the original native mouse event.


createMouseEvent(evt: any, mainLoop: any, buttonType: MouseButtonEventType): MouseEvent

Section titled “createMouseEvent(evt: any, mainLoop: any, buttonType: MouseButtonEventType): MouseEvent”

Creates a Bg2MouseEvent from a native browser event.

This function:

  • Updates the internal mouse position
  • Updates button state
  • Returns a normalized event instance

These functions provide global access to mouse button states:

  • leftMouseButton(): boolean
  • middleMouseButton(): boolean
  • rightMouseButton(): boolean

setMouseButton(event: any, status: boolean): void

Section titled “setMouseButton(event: any, status: boolean): void”

Updates the internal state of a mouse button.


Resets all mouse button states.


  • Used in AppController callbacks such as mouseDown, mouseUp, mouseMove, mouseDrag, and mouseWheel
  • Coordinates are always relative to the canvas
  • Use delta only for wheel events
  • Use event for low-level browser-specific data if needed

mouseDown(evt: Bg2MouseEvent) {
console.log(`Mouse down at ${evt.x}, ${evt.y}`);
if (evt.button === MouseButton.LEFT) {
console.log("Left button pressed");
}
}
mouseWheel(evt: Bg2MouseEvent) {
console.log(`Wheel delta: ${evt.delta}`);
}