$COLOR
Jump to navigation
Jump to search
$COLOR is a metacommand that adds named color constants into a program, which then can be used instead of hardcoded literal color values.
Syntax
- $COLOR:{0|32}
Parameters
- The one and only parameter is a literal number designating either to include SCREEN 0 based color indexes, or full _RGB32 color values with full (opaque) alpha.
Description
- $COLOR:0 adds constants for the colors 0-15 available in SCREEN 0, these do also match for the first 16 colors on 8-Bit (256 colors) graphic screens as long as they are not changed using PALETTE or _PALETTECOLOR. For the actual constant names see $COLOR:0 Name Table.
- $COLOR:32 adds constants for full 32-Bit color values as used on 32-Bit screens created via _NEWIMAGE, similar to HTML color names. For the actual constant names see $COLOR:32 Name Table.
- Prior to QB64-PE v0.5.0, $COLOR was not compatible with $NOPREFIX.
- Since QB64-PE v0.5.0, $COLOR can now be used with $NOPREFIX, with a few notable differences to three conflicting colors -- Red, Green, Blue.
- Red would conflict with _RED, Green would conflict with _GREEN, and Blue would conflict with _BLUE, once the underscore was removed from those commands with $NOPREFIX.
- To prevent these conflicts, the COLOR values have had NP_ prepended to the front of them, to distinguish them from the non-prefixed command names. All other color names remain the same, with only the three colors in conflict having to use NP_ (for No Prefix) in front of them.
Examples
- Example 1
- Adding named color constants for SCREEN 0.
$COLOR:0 COLOR BrightWhite, Red PRINT "Bright white on red." |
Bright white on red.
|
- Example 2
- Adding named color constants for 32-bit modes.
SCREEN _NEWIMAGE(640, 400, 32) $COLOR:32 COLOR CrayolaGold, DarkCyan PRINT "CrayolaGold on DarkCyan." |
CrayolaGold on DarkCyan.
|
- Example 3
- Adding named color constants for 32-bit modes (with $NOPREFIX in effect).
$NOPREFIX SCREEN NEWIMAGE(640, 400, 32) $COLOR:32 COLOR NP_Red, White 'notice the NP_ in front of Red? 'This is to distinguish the color from the command with $NOPREFIX. PRINT "Red on White." |
Red on White.
|
See also