ZZT-OOP
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...