Color: Difference between revisions

From Wiki of ZZT
Jump to navigation Jump to search
No edit summary
m (Asie moved page Colors accessible from ZZT to Color: Turning this into a general "colors in ZZT" page.)
(No difference)

Revision as of 14:51, 24 December 2025

The ZZT engine uses the color text mode of the IBM PC. As such, by default, the world format supports 16 foreground colors and 8 background colors. In addition, the color can optionally be marked as blinking, in which case the foreground character appears and disappears at a rate of approximately 1.87 Hz (266 milliseconds per transition).

TODO: Table/graphics showing the colors.

However, in the built-in editor, most of these combinations are not used or only used for built-in elements and thus not exposed to the user. This page documents how to access these additional colors.

In the editor

The built-in editor only supports directly editing elements in seven colors: blue, green, cyan, red, purple, yellow and white. These correspond to the seven bright colors in the default 16-color CGA palette.

However, non-standard colors can be used by copying an existing tile of such a color, for example by using a toolkit board, and placing it on your own board. Alternatively, one can use an external editor, which generally allow use of all supported colors.

Using ZZT-OOP

ZZT-OOP element kind statements only support seven named colors: blue, green, cyan, red, purple, yellow and white, matching the ones available in the built-in editor. With the exception of doors, named colors apply to an element's foreground color, and are paired with a black background.

A handful of additional colors can be obtained through ZZT-OOP by using the change and put commands on built-in entities with hard-coded colors. This was most likely first discovered by Tim Gallagher in 1992[1].

Below are examples of how to obtain gems of various colors using ZZT-OOP. These are also implemented as a demonstration board in the Mystical Winds Encyclopedia.

Dark colors on black

Brown on black

#put e torch

#change torch gem

Alternatively:

#put e bear

#change bear gem


Dark cyan on black

#put e ammo

#change ammo gem


Dark purple on black

#put e energizer

#change energizer gem


Gray on black

#put e shark

#change shark gem


Black on dark colors

Black on dark green

#put e forest

#change forest gem


Black on gray

#put e empty

#put e gem


White on dark colors

White on gray

#put e door

#change door gem


White on dark blue

#put e blue door

#change door gem


White on dark green

#put e green door

#change door gem


White on dark red

#put e red door

#change door gem


White on dark purple

#put e purple door

#change door gem


White on brown

#put e yellow door

#change door gem


Blinking white on black and dark colors

Blinking white on black

#put e forest

#change forest door

#change door gem


Blinking white on dark cyan

#put e ammo

#put e door

#put e gem

Note: The ammo won't automatically be overwritten by the newly-created door. You can delete it with #change ammo empty, or put the object next to an obstacle such that the ammo gets crushed when the door is created.


Blinking white on dark purple

#put e energizer

#put e door

#change door gem


Blinking white on brown

#put e torch

#put e door

#change door gem


Alternatively:

#put e bear

#put e door

#change door gem

Note: The bear needs to be crushed by an obstacle when the door is created.


Blinking white on gray

#put e shark

#put e door

#change door gem


References

  1. Gallagher, Tim. 1992. Tim's Toolkit.