Programming Language Tutorial
The best way to learn something is to jump right in, so let's not waste any time:
To put an object on the board, press F2 O. After picking a character to represent the object, you can enter a program to control it.
Here is an example program
Commands Comments ---------- ----- @BadGuy ' We are giving this object ' the name "BadGuy". /s/s/s ' Start out by moving south ' three times. #shoot n ' Next, shoot north. #end ' Now stop and wait for us ' to receive a message. :shot ' When we receive a "SHOT" ' message, start doing ' the following commands. #shoot seek ' Shoot towards the player. #end ' Stop and wait for another ' message. :touch ' Do the following when we ' receive a "TOUCH" msg. Ouch! Stop touching me. ' Put the preceeding text ' on the screen. #send shot ' Next, send ourselves the ' message "SHOT".
Note that the "SHOT" message will be send to BadGuy whenever the player shoots BadGuy. Likewise, when the player touches BadGuy, BadGuy will receive the "TOUCH" message.
ZZT-OOP is a relatively simple language, and its commands are fairly straightforward.
The primary difference between ZZT-OOP and conventional languages such as BASIC is the use of messages. The following two objects illustrate a more intense use of messages:
Here is the first object:
@Lefty ' This object's name. /e/e/e/e ' Move east 4 times. /w/w/w/w ' Then west 4 times. #send Righty:Do ' Send the "Do" message ' to the object named ' "Righty". #end ' And halt.
Here is the other object:
@Righty ' This is our name. #end ' Don't do anything ' until we receive ' a message. :do ' Here's the "Do" msg. /w/w/w/w ' Move west 4 times. /e/e/e/e ' Move east 4 times. #send lefty:restart'Tell our counterpart ' to restart. #end ' Done for now.
These two objects form a feedback loop. When the game starts, Lefty will move then send a message to Righty. This causes Righty to move and then tell Lefty to restart. So lefty moves, etc, etc, etc.
- - -
So concludes this mini-tutorial. Once you think you have a grasp of the idea of ZZT-OOP programs and messages, you are ready to proceed to...The ZZT-OOP reference manual.