资源说明:Clone of SourceForge CVS repository for myman
README - basic documentation for the MyMan video game Copyright 1997-2009, Benjamin C. Wiley SittlerCopying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. Website: http://myman.sourceforge.net/ NOTE: !!! LICENSE CHANGE !!! MyMan is no longer in the public domain. It is now distributed under a BSD-style license (see LICENSE for details.) Legal Notice ------------ MyMan is an unofficial and unlicensed clone of the original Pac-Man and Puckman games and of their sequels and imitators, and is not endorsed by Namco Bandai Games Inc., owners of the Pac-Man and Puckman registered trademarks and copyrights. Any trademarks used herein are the property of their respective owners. No mention of a trademark, trademark owner, or other party shall be construed as an endorsement of MyMan or any other product by any party. If you believe that by using or posessing MyMan the rights of others would be infringed, you are strongly encouraged to cease using MyMan and its derivatives and delete all copies of the MyMan software and its derivatives, and to inform the author or authors of MyMan and the distributor or distributors from whom you obtained MyMan of the reasons for such belief so that the infringing part may be removed or replaced. Any imitation by MyMan of other software is intended to be purely for purposes of humor and amusement. Please see the file LICENSE for author contact information. History ------- MyMan was written on a dare on Sunday, 1998-06-28. The original version had no color or attribute support and only supported large tiles (equivalent to -z big.) It was 742 lines of ANSI C and used three data files: a maze file (equivalent to -v pac), a tile file and a sprite file. It worked with ncurses on Linux and cygwin. Several variations using other maze layouts were created over the following hours. Color came in December of that year, as did support for small tiles (equivalent to -z small.) The mygetopt argument parser is a bit older, having been started in 1997 as part of the SMOKE-16 project. Acknowledgements ---------------- Toru Iwatani had the original idea for Namco's 'Pac-Man'/'Puck-Man', which in turn served as inspiration for this game. Innumerable others have written their own variants of the original game which in turn inspired variants for this game, and I have tried to credit them where authorship is known. Credits for each variant are listed in the in-game help screen reachable by pressing ? or Ctrl-H. Description ----------- Basic premise of the MyMan video game: "Those scary ghosts are back, and this time they've spotted you! What's worse is that they've mistaken you for their old rival Pac, and they're out for (yellow) blood!" MyMan displays (A) on a text terminal or terminal emulator (using ncurses, slang, PDCurses, SysV curses, BSD curses, old VMS curses, or the raw stdio terminal driver), (B) on an X Window System display (using PDCurses for X, a.k.a. XCurses), (C) on any terminal or display supported by PDCurses for SDL, libcaca, LibGGI/LibGII, Allegro, TWin, aalib, Carbon/Toolbox, newt, GTK+, FLTK, , Borland-style CONIO, or the Extensible Firmware Interface (EFI) or (D) in a Win32 command prompt window (using the raw Win32 terminal driver). Since MyMan is fairly fast-moving, you'll need a reasonably fast computer and display. It once ran acceptably fast on a 486-66 under Linux, and may still. Installation ------------ Installation instructions are in the file INSTALL. License and Version ------------------- The MyMan version number is recorded in the file VERSION inside the source package. To determine the version number of an installed MyMan executable, run e.g. 'myman -V'. This version of MyMan has a BSD-like license; see the file LICENSE for details. Earlier versions were placed in the public domain. MyMan includes a bundled copy of the 'mygetopt' argument parser, which is licensed under the same terms as MyMan; see the README file in the 'mygetopt' subdirectory of the MyMan source distribution for details. Note that the contents of the MyMan datafiles (tiles, sprites and mazes) are in the public domain. The file 'start.xm' is by Raina / Titan and was originally created in 2007 for an AmigaOS 4.0 port of MyMan 0.6. See: http://os4depot.net/index.php?function=showfile&file=game/action/pfp-myma.lha To Do ----- See TODO for notes on desired features and bugfixes. A Note on Text Encoding and the B.O.M. -------------------------------------- Note that many files in the MyMan distribution are distributed as Unicode/UCS text in the UTF-8 encoding with an explicit "byte-order mark" (B.O.M.) at the beginning. This three-byte sequence (0xEF, 0xBB, 0xBF in hexadecimal notation) allows many web browsers and text editors on Windows, Mac OS X, and other operating systems to automatically select the correct character encoding when displaying or editing the files. Please try to preserve this sequence when further redistributing the files or sending in patches so that others will be able to read the files painlessly. Environment Variables --------------------- Some configurations of MyMan are influenced by the values of environment variables, in addition to those behaviors documented for the underlying display libraries: Display Library Variable Effect ----------------- ---------- -------- AA-Lib AACURSES_BITMAP Nonempty value causes pseudo-bitmap rendering AAOPTS Presence of variable inhibits auto-sizing DISPLAY Absence or empty value inhibits auto-sizing libcaca 0.x CACA_DRIVER Absence or value other than "x11" (case-insensitive) inhibits auto-sizing to large geometries CACA_FONT Absence or value other than "nil2" (case-insensitive) inhibits auto-sizing to large geometries CACA_GEOMETRY Nonempty value inhibits auto-sizing CACACURSES_ACS Nonzero value forces use of font positions 0-31 for VT100 alternate character set (XTerm-style) OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display libcaca 1.x CACACURSES_BITMAP Nonempty value causes pseudo-bitmap rendering CACACURSES_FIXEDPAL Nonempty value disables custom color palette CACA_DRIVER Absence or value other than "x11" (case-insensitive) inhibits auto-sizing to large geometries CACA_FONT Absence or value other than "nil2" (case-insensitive) inhibits auto-sizing to large geometries CACACURSES_BITMAP_BRIGHTNESS Floating-point brightness for pseudo-bitmap rendering CACACURSES_BITMAP_GAMMA Floating-point gamma value for pseudo-bitmap rendering CACACURSES_BITMAP_CONTRAST Floating-point contrast for pseudo-bitmap rendering CACACURSES_BITMAP_ANTIALIAS Antialiasing mode for pseudo-bitmap rendering; one of "none", "prefilter" or "default" CACACURSES_BITMAP_COLOR Color mode for pseudo-bitmap rendering; one of "mono", "gray", "8", "16", "fullgray", "full8", "full16", or "default" CACACURSES_BITMAP_CHARSET Character set for pseudo-bitmap rendering; one of "ascii", "shades", "blocks", or "default" CACACURSES_BITMAP_ALGORITHM Error diffusion mode for pseudo-bitmap rendering; one of "none", "ordered2", "ordered4", "ordered8", "random", or "fstein" CACACURSES_BITMAP_DOUBLE Nonempty value doubles bitmap width and height CACACURSES_BITMAP_DOUBLEHEIGHT Nonempty value doubles bitmap height OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display LibGGI/LibGII GGICURSES_BITMAP Nonempty value causes bitmap rendering GGICURSES_SWAPRB Nonempty value interchanges red and blue color channels GGICURSES_ASCII Nonempty value forces ASCII-only rendering GGICURSES_FLUSHALL Nonempty value disables selective rectangular region updates in favor of complete refreshes GGICURSES_FIXEDPAL Nonempty value disables custom color palette GGICURSES_DIRECT Nonempty value enables use of directbuffer rendering GGICURSES_BITMAP_DOUBLE Nonempty value doubles bitmap width and height by scanline simulation GGICURSES_BITMAP_DOUBLEHEIGHT Nonempty value doubles bitmap height OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display Allegro ALLEGROCURSES_BITMAP Nonempty value causes bitmap rendering ALLEGROCURSES_BITMAP_DOUBLE Nonempty value doubles bitmap width and height by scanline simulation ALLEGROCURSES_BITMAP_DOUBLEHEIGHT Nonempty value doubles bitmap height ALLEGROCURSES_SWAPRB Nonempty value interchanges red and blue color channels ALLEGROCURSES_FIXEDPAL Nonempty value disables custom color palette ALLEGROCURSES_FONT Font for non-bitmap rendering; must be a format supported by load_font(3); chr8.fnt in the MyMan distribution works ALLEGROCURSES_TXT_FONT Font for non-bitmap rendering; must be a format supported by load_txt_font(3); chr8.afn in the MyMan distribution works OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display Win32 Console/CONIO/TOS/AROS/VMS/*nix TTY RAWCURSES_RAW Nonzero value causes raw UTF-8 character output (Unicode) or CP-437 byte output (CP-437) RAWCURSES_WCWIDTH Nonzero value causes builtin character width data to be used as a fallback for characters not handled by locale data; a positive integer value causes all non-ASCII characters to assume that width (in cells) RAWCURSES_STDIO Nonzero value forces use of stdio (Win32/CONIO) RAWCURSES_CONIO Nonzero value forces use of Borland- style CONIO RAWCURSES_CONIO_INPUT Nonzero value forces use of CONIO input RAWCURSES_UTF8 Nonzero value forces UTF-8 output when using stdio RAWCURSES_DEBUG_UTF8 Nonzero value forces UTF-8 debugging output when using stdio RAWCURSES_ACS Nonzero value forces use of the VT100 alternate character set when using stdio RAWCURSES_CP437 Nonzero value forces use of CP-437 alternate character set when using stdio (ESC[11m) RAWCURSES_ISO2022 Zero value disables use of ISO 2022 character set selection sequences RAWCURSES_WIDE Nonzero value forces use of the VT100 double-width characters when using stdio RAWCURSES_H19 Nonzero value forces use of the H-19 alternate character set when using stdio RAWCURSES_VT52 Nonzero value forces use of the VT52 escape sequences when using stdio RAWCURSES_ST52 Nonzero value forces use of the ST52 escape sequences when using stdio RAWCURSES_VWMTERM Nonzero value forces use of the vwmterm escape sequences when using stdio RAWCURSES_AMIGA Nonzero value forces use of the Amiga console escape sequences when using stdio RAWCURSES_DECTERM Nonzero value forces use of the DECterm escape sequences when using stdio RAWCURSES_ADM3A Nonzero value forces use of the ADM3A escape sequences when using stdio RAWCURSES_COLOR Nonzero value enables color RAWCURSES_16COLOR Nonzero value enables use of the 16 colors rather than 8 RAWCURSES_BLINK Nonzero value forces use of the blink attribute for bright background colors when using stdio RAWCURSES_88COLOR Nonzero value enables use of the XTerm-style 88-color static palette (an XTerm compile-time option) when using stdio RAWCURSES_256COLOR Nonzero value enables use of the XTerm-style 256-color static palette (an XTerm compile-time option) when using stdio RAWCURSES_CCC Nonzero value forces use of the XTerm dynamic color palette when using stdio RAWCURSES_LINUX Nonzero value forces use of the Linux console dynamic color palette when using stdio RAWCURSES_FIXEDPAL Nonzero value disables custom color palette changes and use of more than 16 colors RAWCURSES_NOBULLET Nonzero value disables use of the alternate character set bullet when using stdio RAWCURSES_NOCOLORBOLD Nonzero value disables use of the bold attribute in conjunction with color when using stdio RAWCURSES_CIVIS Zero value disables the use of cursor-hiding escape sequences when using stdio RAWCURSES_RELCUP Nonzero value forces use of relative cursor addressing when using stdio RAWCURSES_TRANSPARENT Zero value forces use of color for all attributes RAWCURSES_LINES Overrides LINES RAWCURSES_COLUMNS Overrides COLUMNS OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display Carbon/Toolbox MACCURSES_FONT Font name MACCURSES_FONTSIZE Initial font size in pixels MACCURSES_FONTENCODING Font encoding name, possibly one of: CP437 MacRoman MacJapanese MacVT100 US-ASCII OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display GTK+ GTKCURSES_FONT Font name GTKCURSES_ICON Icon graphic GTKCURSES_BITMAP Nonzero value causes psuedo-bitmap rendering OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display FLTK FLTKCURSES_FONT Font face FLTKCURSES_FONTSIZE Font size OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display Open Watcom-style graph.h GRAPHCURSES_BITMAP Nonzero value causes bitmap rendering GRAPHCURSES_MODE Display mode number: -3 graphics, highest res -2 graphics, most colors -1 original mode or any MDA/CGA/HGC/EGA/VGA/MCGA/VESA mode number GRAPHCURSES_ROWS Display height in text rows or: -1 maximum height 0 default height for mode GRAPHCURSES_COLOR Zero disables color GRAPHCURSES_CCC Zero disables EGA/VGA/MCGA/SVGA/VESA palette remapping GRAPHCURSES_PALETTE Select palette for CGA mode 4/5: -1 current palette 0 dark green/red/brown 1 dark cyan/magenta/white 2 light green/red/yellow 3 light cyan/magenta/white GRAPHCURSES_BRIGHTBG Zero disables use of bright background on CGA/EGA/VGA/MCGA/SVGA under MS-DOS OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display DISPCURSES_USEBIOS Nonzero value forces use of BIOS routines for display I/O (DOS) OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display newt or Borland-style CONIO or Extensible Firmware Interface (EFI) OPTCURSES_DIRECT Nonzero value disables redraw optimization layer OPTCURSES_INTERLACE Nonzero value renders by interleaving half-screens OPTCURSES_BITMAP Nonzero value causes use of pseudo-bitmap characters OPTCURSES_BITMAP_FORCE Nonzero value allows use of inverse video when using ASCII pseudo-bitmap characters OPTCURSES_BITMAP_BRAILLE Nonzero value forces use of Braille pseudo-bitmap characters on a Unicode display Detailed Notes -------------- For basic usage information, refer to the text version of the MyMan manual page, myman.txt (generated from myman.man by 'make docs' using groff.) A. When Power Pellets Look Strange: The compile-time option -DSWAPDOTS=1 or the equivalent command-line option '-o' or in-game command 'O' or '0' is often necessary for a decent display. This depends greatly on what font you use. B. More Authentic Colors: If you have a color X server and the XFree XTerm terminal emulator, you can try the included xmyman script which should start MyMan in a window of its own, with proper colors. If you have the rxvt terminal emulator, you can try the xmyman2 script for a similar effect. And finally, if you have XFree86 XTerm and a font for IBM codepage 437, you can try the included xmyman3 script for more different types of pseudo-graphic characters (single and double lines, dots, and power pellets.) Alternatively, you can get the "ctheme" package from http://sourceforge.net/project/?group_id=2640 and then run the included 'myman.ct' color theme script in your XTerm or on the Linux console. Changing your terminal's palette can greatly improve the experience; recommended RGB values for each palette entry are listed at the end of this file. If you're using the Mac OS X Terminal application, you may install TerminalColors to get customizable colors: http://www.culater.net/software/TerminalColors/TerminalColors.php The myman.term file in the MyMan distribution takes advantage of TerminalColors (if installed) to set the MyMan color palette. If you're using the Darwin/Mac OS X console (this is a "text mode" with no GUI or windowing system and is very rarely used,) you may install utl/mach_mypal to switch your console to an appropriate palette and utl/mach_acs to enable alternate character set (line drawing) support. These have only been tested in Mac OS X 10.4 "Tiger" so far. C. Window Size: A terminal height of 34 or more lines works quite nicely, but 24 or 25 (or even less) will work. Similarly, a width of 58 or more characters is nice, but not required. If you're a real pro (or lacking screen real-estate) you can play MyMan in a terminal window with 7 lines of 12 characters each... it's actually playable! D. Keyboard Map: The following case-insensitive keystroke commands are recognized during the game: Q or Ctrl-C: quit the game P or ESC: pause the game Ctrl-Q: re-enable output (after Ctrl-S) R, Ctrl-L or Ctrl-R: refresh (redraw) the screen @: reset the display subsystem and refresh (redraw) the screen Ctrl-S: inhibit output until Ctrl-Q is typed S: toggle sound on/off W: warp to the next level (after consuming the next dot) C: toggle color on/off (if enabled at compile-time) B: toggle use of dim and bold attributes for missing colors U: toggle underlining of walls on/off (if enabled at compile-time) D: toggle maze debugging on/off T: save an HTML screenshot to the file snap####.html, where #### is a four-digit sequence number, and flash the screen briefly; a plain text version is saved as snap####.txt using backspacing to represent underlined and bold text O or 0: toggle appearance of power pellets and dots A: toggle between ASCII altcharset translations and your terminal's altcharset translations I: toggle between using your terminal's vertical scrolling capabil- ities and redrawing the screen X: toggle between raw tile characters (CP437 or UCS/Unicode charac- ter graphics) and altcharset translations (VT100-style graphics) E: toggle between UCS/Unicode and CP437 for internal representation of raw tile characters H, 4, Ctrl-B or LEFT: move left J, 2, Ctrl-N or DOWN: move down K, 8, Ctrl-P or UP: move up L, 6, Ctrl-F or RIGHT: move right , (comma) or <: cancel pending vertical move . (full stop) or >: cancel pending horizontal move / or \: toggle diagonal maze reflection !: display information about the maze, tileset and spriteset ? or Ctrl-H: display help screen The pager recognizes the following special commands: SPACE: display next page or finish ESC: finish immediately Move left then right with no intervening keystrokes: equivalent to ESC E. Configuration at Start-Up: Several of the game's settings can be changed at startup using command-line parameters; use the '-h' parameter for more information. F. Configuration at Compile-Time: There are several properties of the game which may be altered using compile-time options: Compile-time option Default value Description MYMANDELAY 25000 Delay is between updates. (in microseconds) SPEEDUP 1000 Amount delay decreases after each level. Values other than the default and 0 don't work particularly well. This uses the usleep library function. Boolean Compile-time option Default value Description USE_ATTR (automatic) Try to use attributes. USE_COLOR (automatic) Enable color support. USE_PALETTE 1 (except under Enable support for slang) color palette manipulation. USE_KEYPAD (automatic) Try to use the keypad. USE_ACS 1 Use your terminal's altcharset translations by default. USE_RAW 0 Output untranslated CP437 character graphics by default. The preceding options affect which curses features MyMan uses. MyMan was developed using ncurses, primarily under GNU/Linux. It should be fairly portable to other operating systems and other SysV-like curses implementations. A partial port to old BSD curses has been completed, and uses the FIONREAD ioctl to simulate nodelay(). A port to old VMS curses has also been completed bypassing getch() and using raw QIO. Options with automatic default values will be enabled if your curses implementation seems to support them. Support is verified by checking for relevant #defines; if your curses implementation doesn't provide the relevant #defines, the default value will likely be wrong. This guessing process is pessimistic, meaning that features are more likely to be erroneously disabled than erroneously enabled. Boolean Compile-time option Default Description SWAPDOTS 0 Use 'o' for power pellets and ACS_BULLET for dots. (useful for vt100/latin-1 terminals and emulations) This compile-time option can be modified on the command-line or at run-time. Boolean Compile-time option Default Description COLORIZE 1 Try to use color. (somewhat slower than monochrome) This compile-time option can be modified on the command-line, and toggled at run-time using 'c', provided USE_COLOR is non-zero. Compile-time option Default value Description TILEFILE "chr/chr5x2.txt" File containing maze tiles. A tile file contains a dimension specifier followed by some tiles. The dimension specifier is of the form WxH, where W and H are decimal integers corresponding to the width and height of the tiles. This may optionally be followed by ~F, where F is a flag bitmap written as a decimal integer. The flag bits defined so far are "2", which indicates invertable bitmap tiles, and "4", which indicates that all non-inverted wall parts should have their background color set. The line may optionally end with tile file arguments ' arg1=value1 arg2=value2 ...'. Tile Argument Description ABOUT Textual description of this tile file NOTE Additional notes for this tile file FIXME Known problems with this tile file Each maze tile is described as follows: XX~Y <- two-digit hex code; corresponds roughly to CP437 character code. ^___ optional: '~' followed by 1-digit hex code; corresponds to color. :cccc...cc <- ':' followed by W characters; further characters ignored. (repeated H times) Blank lines are ignored. Hex codes with special meaning: 20(' '),FF: walkable tile 2E('.'),F9: edible dot 6F('o'),FE: power pellet 3D('='),3A(':'),F0,FF: door (to ghost house) 7E('~'): secret door in horizontal wall 6C('l'): secret door in vertical wall 3C('<'),AE: zap left to matching right zap 3E('>'),AF: zap right to matching left zap 76('v'): zap down to matching up zap 5E('^'): zap up to matching down zap 10,11,18-1B,1E,1F,2B('+'),2D('-'),7C('|'),B3-DA,F0: walls Color codes: 0: white (def.) 8: dim white 1: blue 9: bold blue 2: green A: bold green 3: cyan B: bold cyan 4: red C: bold red 5: magenta D: bold magenta 6: yellow E: bold yellow 7: white F: bold white Compile-time option Default value Description SPRITEFILE "spr/spr7x3.txt" File containing sprites. A sprite file contains a dimension specifier followed by some frames. The dimension specifier is of the form WxH, where W and H are decimal integers corresponding to the width and height of sprite frames. This may optionally be followed by ~F, where F is a flag bitmap written as a decimal integer. The only flag bit currently defined is "1", which indicates that ghost eyes are invisible. The line may optionally end with sprite file arguments ' arg1=value1 arg2=value2 ...'. Note that ghost eyes are always visible while a ghost is returning home (after being eaten.) Setting the "1" flag bit is a good idea if your ghost eye sprite totally obsures your "mean" ghost sprite. Sprite Argument Description ABOUT Textual description of this sprite file NOTE Additional notes for this sprite file FIXME Known problems with this sprite file The sprite frame format is similar to the maze tile format, with the following differences: a literal NUL (ASCII 0) in the description is treated as a transparent character, and the hex codes are as follows: 00-07: level indicators (fruit, keys, etc.) 08-09: "mean" ghost body animation 0a: ghost eyes looking up 0b: ghost eyes looking left 0c: ghost eyes looking down 0d: ghost eyes looking right 0e-0f: "scared" ghost animation 10-13: MyMan walking up animation 14-17: MyMan walking left animation 18-1b: MyMan dying animation 1c-1f: MyMan walking right animation 20-23: MyMan walking down animation 24-28: (unused) 29: 100 points 2A: 300 points 2B: 500 points 2C: 700 points 2D: 1000 points 2E: 2000 points 2F: 3000 points 30: 5000 points 31: 200 points 32: 400 points 33: 800 points 34: 1600 points 35-36: "white/scared" ghost animation 37: life counter 38-3B: large MyMan walking right animation (upper-left quadrant) 3C-3F: large MyMan walking right animation (upper-right quadrant) 40-43: large MyMan walking right animation (lower-left quadrant) 44-47: large MyMan walking right animation (lower-right quadrant) 48-FF: (unused) Compile-time option Default value Description MAZEFILE "lvl/maze.txt" Maze description file. The maze description file starts with a line containing 'N WxH' or 'N WxH~F' and optional maze arguments ' arg1=value1 arg2=value2 ...', and the remaining lines are an ASCII picture of the maze. If present, F is a flag bitmap written as a decimal integer. The flag bits defined so far are "1", which indicates that maze changes only occur at game intermissions, "2", which indicates whether to repeat the FLIP_TO maze after showing the last maze, and "4", which indicates that wall color choice should be based on wall thickness, rather than whether a wall edge or a filled wall section is being drawn. NOTE: The Python program scripts/asc2txt.py can be used to automatically convert plain-ASCII ".asc" mazes to UTF-8 ".txt" mazes. The output of scripts/asc2txt.py often needs some manual cleanup. Maze argument Default value Description ABOUT (none) Textual description of this maze file NOTE (none) Additional notes for this maze file FIXME (none) Known problems with this maze file CHERO (W * 0.5) MyMan's start column. RHERO 23.5 MyMan's start row. CFRUIT CHERO Prize column. RFRUIT 17.5 Prize row. RGHOST (RFRUIT - 3.0) Ghost start row. ROGHOST 3 Ghost offset rows. COGHOST 2 Ghost offset columns. RTOP (RFRUIT - 5.0) Ghost door row. CMSG 9 Message column. RMSG 17 Message row. CMSG2 9 Player Message column. RMSG2 11 Player Message row. PLAYER1 "PLAYER ONE" PLAYER2 "PLAYER TWO" READY " READY! " Ready message. GAMEOVER "GAME OVER" Game over message. PAUSE " - PAUSED - " Pause string. GHOSTS 4 Number of ghosts. Set this palette if you can (Red/Grn/Blu values are on a scale of 0-255; colors listed in VGA order): Red Grn Blu Hex# R% G% B% MyMan color VGA color ANSI color ===-===-===--======--===-===-===--============-================--=============== 0 0 0 000000 0 0 0 Black 0 Black 0 Black 0 0 221 0000DD 0 0 86 Blue 1 Blue 4 Blue 0 183 0 00B700 0 71 0 Green 2 Green 2 Green 0 221 221 00DDDD 0 86 86 Cyan 3 Cyan 6 Cyan 221 150 70 DD9646 86 58 27 Brown 4 Red 1 Red 255 32 150 FF2096 100 12 58 Magenta 5 Magenta 5 Magenta 255 183 70 FFB746 100 71 27 Salmon 6 Brown 3 Yellow 255 183 150 FFB796 100 71 58 Light Yellow 7 Light Grey 7 White 102 102 102 666666 40 40 40 Grey 8 Dark Grey 8 Bold Black 32 32 221 2020DD 12 12 86 Light Blue 9 Light Blue 12 Bold Blue 150 255 0 96FF00 58 100 0 Light Green 10 Light Green 10 Bold Green 0 255 221 00FFDD 0 100 86 Light Cyan 11 Light Cyan 14 Bold Cyan 255 0 0 FF0000 100 0 0 Light Red 12 Light Red 9 Bold Red 249 178 215 F9B2D7 98 70 84 Pink 13 Light Magenta 13 Bold Magenta 255 255 0 FFFF00 100 100 0 Yellow 14 Yellow 11 Bold Yellow 221 221 221 DDDDDD 86 86 86 Light Grey 15 White 15 Bold White If your terminal only supports eight distinct colors, set this palette instead (colors listed in ANSI order): Red Grn Blu Hex# R% G% B% MyMan color(s) ANSI color ===-===-===--======--===-===-===--=========================--========== 0 0 0 000000 0 0 0 Black 0 Black 238 75 35 EE4B23 93 29 13 Brown + Light Red 1 Red 75 219 0 4BDB00 29 85 0 Green + Light Green 2 Green 255 219 35 FFDB23 100 85 13 Salmon + Yellow 3 Yellow 16 16 221 1010DD 6 6 86 Blue + Light Blue 4 Blue 252 105 182 FC69B6 98 41 71 Magenta + Pink 5 Magenta 0 238 221 00EEDD 0 93 86 Cyan + Light Cyan 6 Cyan 238 202 185 EECAB9 93 79 72 Light Yellow + Light Grey 7 White
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。