API reference
Every public class, method, and event in @codexo/exojs. Generated from source.
classSprite
The primary 2D drawable for textured quads and the foundation of the rendering hierarchy. A Sprite wraps a Texture (or RenderTexture) and exposes full transform control (position, rotation, scale, origin) inherited from Drawable. The rendered quad is derived from `textureFrame`, which defaults to the full texture dimensions but can be narrowed to a sub-region (e.g. a frame from a Spritesheet). Vertex and normal data are computed lazily and cached until the transform or frame changes, making repeated read access free after the first evaluation. Collision helpers — `contains`, `getNormals`, `project` — are overridden to operate on the exact rotated quad rather than the AABB.
import { Sprite } from '@codexo/exojs' The primary 2D drawable for textured quads and the foundation of the rendering hierarchy.
A Sprite wraps a Texture (or RenderTexture) and exposes full transform control (position, rotation, scale, origin) inherited from Drawable. The rendered quad is derived from `textureFrame`, which defaults to the full texture dimensions but can be narrowed to a sub-region (e.g. a frame from a Spritesheet).
Vertex and normal data are computed lazily and cached until the transform or frame changes, making repeated read access free after the first evaluation. Collision helpers — `contains`, `getNormals`, `project` — are overridden to operate on the exact rotated quad rather than the AABB.
new(texture: RenderTexture | Texture | null): Sprite _invalidateChildrenTransform(): void addFilter(filter: Filter): this clearFilters(): this collidesWith(target: Collidable): CollisionResponse | null contains(x: number, y: number): boolean destroy(): void getBounds(): Rectangle getGlobalTransform(): Matrix getLocalBounds(): Rectangle getNormals(): Vector[] getTransform(): Matrix intersectsWith(target: Collidable): boolean invalidateCache(): this inView(view: View): boolean move(x: number, y: number): this project(axis: Vector, result: Interval): Interval removeFilter(filter: Filter): this render(backend: RenderBackend): this resetTextureFrame(): this rotate(degrees: number): this setAnchor(x: number, y: number): this setBlendMode(blendMode: BlendModes): this setOrigin(x: number, y: number): this setPosition(x: number, y: number): this setRotation(degrees: number): this setScale(x: number, y: number): this setSkew(x: number, y: number): this setTexture(texture: RenderTexture | Texture | null): this setTextureFrame(frame: Rectangle, resetSize: boolean): this setTint(color: Color): this updateBounds(): this updateParentTransform(): this updateTexture(): this updateTransform(): this setInternalSpriteFactory(factory: object | null): void clip: boolean clipShape: Rectangle | Geometry | null collisionType: CollisionType cursor: string | null draggable: boolean flags: Flags<SceneNodeTransformFlags> preserveDrawOrder: boolean anchor: ObservableVector blendMode: BlendModes cacheAsBitmap: boolean cullable: boolean filters: readonly Filter[] height: number interactive: boolean isAlignedBox: boolean mask: MaskSource material: SpriteMaterial | null origin: ObservableVector parent: Container | null pixelSnapMode: PixelSnapMode position: ObservableVector rotation: number scale: ObservableVector skewX: number skewY: number texCoords: Uint32Array texture: RenderTexture | Texture | null textureFrame: Rectangle tint: Color vertices: Float32Array visible: boolean width: number x: number y: number zIndex: number onDrag: Signal<[InteractionEvent]> onDragEnd: Signal<[InteractionEvent]> onDragStart: Signal<[InteractionEvent]> onPointerDown: Signal<[InteractionEvent]> onPointerMove: Signal<[InteractionEvent]> onPointerOut: Signal<[InteractionEvent]> onPointerOver: Signal<[InteractionEvent]> onPointerTap: Signal<[InteractionEvent]> onPointerUp: Signal<[InteractionEvent]>