the-world-engine
Version:
three.js based, unity like game engine for browser
64 lines (63 loc) • 2.41 kB
TypeScript
import { CssTilemapRenderer } from "../render/CssTilemapRenderer";
/**
* collision map with tilemap for grid system
* there is limitation of tilemap size
*
* this component will auto generate collision map from tilemap
*
* coordinate system is row column (positive x is right, positive y is down)
*
* important: grid position data is stored as string ("x_y" format)
* so this component might not work properly if this component's gameObject.position is not integer
*/
export declare class CssCollideTilemapRenderer extends CssTilemapRenderer {
private readonly _collideMap;
private _collideEnabled;
onEnable(): void;
onDisable(): void;
/**
* draw tile at position. collide info will be automatically added
* @param column column in tilemap
* @param row row in tilemap
* @param imageIndex index of image in imageSources
* @param atlasIndex index of atlas in imageSources
* @returns
*/
drawTile(column: number, row: number, imageIndex: number, atlasIndex?: number): void;
/**
* draw tile from two dimensional array. collide info will be automatically added
*
* array left upper corner is (0, 0) in tilemap
* @param array array of image index. { i: 0, a: 1 } means imageSources[0] in atlas[1]
* @param xOffset array x offset, if you want to add tile from array[1][3] to (2, 3) you should set xOffset = 1
* @param yOffset array y offset, if you want to add tile from array[3][1] to (3, 2) you should set yOffset = 1
* @returns
*/
drawTileFromTwoDimensionalArray(array: ({
i: number;
a: number;
} | null)[][], columnOffset: number, rowOffset: number): void;
/**
* clear tile at position. collide info will be automatically removed
* @param column column in tilemap
* @param row row in tilemap
* @returns
*/
clearTile(column: number, row: number): void;
/**
* add collider at position
* @param column column in tilemap
* @param row row in tilemap
* @returns
*/
addCollider(column: number, row: number): void;
/**
* query that collides at position
* @param x world position x
* @param y world position y
* @param width aabb collision width
* @param height aabb collision height
* @returns
*/
checkCollision(x: number, y: number, width: number, height: number): boolean;
}