diff --git a/types/rot-js/index.d.ts b/types/rot-js/index.d.ts index 44eeab7698..f2d0b45592 100644 --- a/types/rot-js/index.d.ts +++ b/types/rot-js/index.d.ts @@ -406,7 +406,7 @@ export class Display { clear(): void; computeSize(availWidth: number, availHeight: number): [number, number]; computeFontSize(availWidth: number, availHeight: number): number; - draw(x: number, y: number, character: string | string[], fg?: string, bg?: string): void; + draw(x: number, y: number, character: string | string[], fg?: string | string[], bg?: string | string[]): void; drawText(x: number, y: number, text: string, maxWidth?: number): number; eventToPosition(e: UIEvent): [number, number] | number; getContainer(): Node; diff --git a/types/rot-js/rot-js-tests.ts b/types/rot-js/rot-js-tests.ts index 50ec56b947..36f6aa3576 100644 --- a/types/rot-js/rot-js-tests.ts +++ b/types/rot-js/rot-js-tests.ts @@ -324,6 +324,35 @@ tileSet.onload = () => { display.draw(2, 1, "#", "transparent", "rgba(250, 250, 0, 0.5)"); }; +// Console display / graphical tiles / Colorized tile stacks + +tileSet = document.createElement("img"); +tileSet.src = "tiles.png"; + +options = { + layout: "tile", + bg: "transparent", + tileWidth: 64, + tileHeight: 64, + tileSet, + tileColorize: true, + tileMap: { + "@": [0, 0], + "#": [0, 64] + }, + width: 1, + height: 1 +}; +display = new ROT.Display(options); +SHOW(display.getContainer()); + +tileSet.onload = () => { + const ch = ["#", "@"]; + const fg = ["rgba(255, 0, 0, 0.5)", "rgba(0, 0, 255, 0.5)"]; + const bg = ["transparent", "transparent"]; + display.draw(0, 0, ch, fg, bg); +}; + // Map creation let map = new ROT.Map.Arena(3, 3); const userCallback = (x: number, y: number, value: number) => {