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.
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" message Ouch! Stop touching me. ' Put the preceeding text on the screen. #send shot ' Next, send ourselves the message "SHOT".
ZZT-OOP is a relatively simple language and its commands are 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:
@Lefty ' This object's name /e/e/e/e ' Move east 4 times /w/w/w/w ' Move west 4 times #send Righty Do ' Send the "Do" message to the object named "Righty" #end ' and halt.
@Righty ' This is our name #end ' Don't do anything until we receive a message :do ' Here's the "Do" message /w/w/w/w ' Move west 4 times /e/e/e/e ' Move east 4 times #send lefty:restart ' Tell your counterpart to restart #end ' Done for nowThese two objects form a feedback loop. When the game starts, Lefty will move, then send a message to Righty. This causes Righty to move 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.