172 lines
6.3 KiB
Plaintext
172 lines
6.3 KiB
Plaintext
|
//--------------------------------------------------------------------------------
|
||
|
// Lesson3.TXT
|
||
|
// Where we learn fancy things like choices, images, and oooh, sound!
|
||
|
//
|
||
|
//
|
||
|
// Now that you've made a window look like you want, what next? Well, maybe we
|
||
|
// want to have the player choose from a set of choices. What would be a good
|
||
|
// name for that command?
|
||
|
//
|
||
|
// CHOICE
|
||
|
// The choice command allows you to present bulleted choices (choices with little
|
||
|
// dots in front of them), and to pick one, and go to another window or switch
|
||
|
// based on the choice:
|
||
|
//
|
||
|
// choice "Buy" 3:3
|
||
|
// choice "Sell" 3:4
|
||
|
// choice "Exit" 3:5
|
||
|
//
|
||
|
// GOTO means that you should go to the window or switch with the following
|
||
|
// bank and entry number. (In a choice, using the word GOTO is optional,
|
||
|
// because that's all you can do in a choice, really.) We'll talk more about
|
||
|
// GOTO when we talk about SWITCH statements.
|
||
|
//
|
||
|
// Here is where we reach one of the interesting quirks of APE's evolution.
|
||
|
// While GOTO is used in a SWITCH to send the code execution to a new
|
||
|
// WINDOW or SWTICH, it is not an accepted command when used in a WINDOW.
|
||
|
// To goto another WINDOW or SWITCH at the end of WINDOW, you must use the
|
||
|
// command NEXTWINDOW. For almost all intents and purposes, it is identical
|
||
|
// to GOTO.
|
||
|
//
|
||
|
// At the end of this file is a window containing everything from Lesson3.
|
||
|
// Once you compile it, you can see it all in action.
|
||
|
//
|
||
|
// IMAGE
|
||
|
// Okay, this command allows you to add a picture in the window along with
|
||
|
// the text.
|
||
|
//
|
||
|
// You can include as many images inside the window as you wish.
|
||
|
// You can use BMPs, PCXs, PNGs, or TGAs each with its own pro/cons:
|
||
|
//
|
||
|
// BMPs Full, 24-bit color, no palette, looks great, but does not support
|
||
|
// transparency
|
||
|
// PCXs Transparency (use palette color #255), limited to 256 colors
|
||
|
//
|
||
|
// (PCXs are the usually the handy format for games, because you often
|
||
|
// want a shape to go over a background looking like its shape, not the shape
|
||
|
// with a big black square around it. But I digress.)
|
||
|
//
|
||
|
// PNG support was added late to Anachronox. It supports tanslucency,
|
||
|
// compresses in a lossless format, and is all in all a handy little
|
||
|
// format. It is heavily used in particles, and interform textures.
|
||
|
// The only drawback you may find is that many Windows based
|
||
|
// viewers, such as Internet Explorer tend to display them either darker
|
||
|
// or lighter than their original brightness. You should find that
|
||
|
// Anachronox displays them properly.
|
||
|
//
|
||
|
// TGAs are 24-bit with eight bits of translucency. These allow you to
|
||
|
// actually have colored, translucent graphics! You can't make these with
|
||
|
// the Paint program supplied with Windows, but if you have Photoshop or
|
||
|
// PaintShop Pro, Go ahead!
|
||
|
//
|
||
|
// Here's the format of an image command, and we'll explain each part:
|
||
|
// image path/FILENAME.PCX X,Y H,W SOLID
|
||
|
// The file can be a PCX, BMP, PNG or TGA and usually is preceded by the pathname
|
||
|
// to that graphic as well. Otherwise, all the graphics would be sitting in
|
||
|
// the GAMEFLOW directory! That would stink!
|
||
|
//
|
||
|
// As you might assume from the above statement, the Anachronox\anoxdata\gameflow
|
||
|
// directory is the default directory of the image tag.
|
||
|
//
|
||
|
// NOTE: Use forward slash in all cases in APE. Backward slash, as we'll
|
||
|
// learn more about later, is used to included special characters, like \n
|
||
|
// for carriage return.
|
||
|
//
|
||
|
// X,Y are the X and Y coordinate of where in the window to draw the picture.
|
||
|
// 0,0 is obviously the upper left corner.
|
||
|
// H,W are the height and width of the image. These are optional paramaters, and
|
||
|
// can be used to expand or shrink the image from it's original size.
|
||
|
// If a SOLID is specified, text wraps around the picture. If you want the text
|
||
|
// to go over the picture, or there isn't any text, then don't use SOLID--just
|
||
|
// specify the filename and the X,Y coordinates. Note that there is a space
|
||
|
// between the filename and the X,Y coords, not a comma.
|
||
|
//
|
||
|
// If X or Y are negative, it will draw the graphic that much in from the right
|
||
|
// or lower corner, respectively.
|
||
|
//
|
||
|
// NOTE: Images in Anachronox, must be in powers of 2! What does that mean? It
|
||
|
// means that images must be in one of the following sizes
|
||
|
// 16 X 16
|
||
|
// 16 X 32
|
||
|
// 16 X 64
|
||
|
// 16 X 128
|
||
|
// 32 X 16
|
||
|
// 32 X 32
|
||
|
// 32 X 64
|
||
|
// 32 X 128
|
||
|
// 32 X 256
|
||
|
// 64 X 16
|
||
|
// 64 X 32
|
||
|
// 64 X 64
|
||
|
// 64 X 128
|
||
|
// 64 X 256
|
||
|
// 128 X 16
|
||
|
// 128 X 32
|
||
|
// 128 X 64
|
||
|
// 128 X 128
|
||
|
// 128 X 256
|
||
|
// 256 X 32
|
||
|
// 256 X 64
|
||
|
// 256 X 128
|
||
|
// 256 X 256
|
||
|
//
|
||
|
// So what if you have a 20 x 45 sized image? Well then, make it 32 x 64 and make the extra space transparent.
|
||
|
//
|
||
|
//
|
||
|
// SOUND
|
||
|
// This command allows a WAV file to be played as soon as the window is displayed.
|
||
|
// This is how we have the speech played in the game. Sounds are stored in
|
||
|
// ANOXDATA\SOUND A sound command goes like this:
|
||
|
// extern playsound "boots\BOOTS1.WAV"
|
||
|
//
|
||
|
//
|
||
|
//
|
||
|
// Okay, here's all those commands used together. Type INVOKE 3:1 after you
|
||
|
// compile and load it:
|
||
|
//
|
||
|
// NOTE: This lesson used to be much simpler, but the sound command was eventually
|
||
|
// changed to an extern, which must be run from a switch. So instead of creating
|
||
|
// an all new lesson, I have simply fixed the old code in an effort to get these
|
||
|
// docs out asap. So for now, ignore the startswitch and extern commands. They
|
||
|
// will be brought in at a later lesson.
|
||
|
//
|
||
|
//
|
||
|
//================================================================================
|
||
|
#window 2:1
|
||
|
title "Learn 3 Demo" // you can put comments on the same line
|
||
|
body "Choose from three sounds:"
|
||
|
choice "Blip" 2:2
|
||
|
choice "Bleep" 2:3
|
||
|
choice "Bloop" 2:4
|
||
|
|
||
|
//--------------------------------------------------------------------------------
|
||
|
#window 2:2
|
||
|
startswitch
|
||
|
{
|
||
|
extern playsound "ui/gen/button1.wav"
|
||
|
}
|
||
|
body "Blip"
|
||
|
|
||
|
|
||
|
//--------------------------------------------------------------------------------
|
||
|
#window 2:3
|
||
|
startswitch
|
||
|
{
|
||
|
extern playsound "ui/gen/button3.wav"
|
||
|
}
|
||
|
body "Bleep"
|
||
|
|
||
|
//--------------------------------------------------------------------------------
|
||
|
#window 2:4
|
||
|
startswitch
|
||
|
{
|
||
|
extern playsound "ui/gen/button4.wav"
|
||
|
}
|
||
|
body "Bloop"
|
||
|
|
||
|
|
||
|
//================================================================================
|
||
|
|
||
|
// Okay, in Lesson 4, we're gonna learn about switches...and that gets _reeeally_
|
||
|
// interesting!
|