racket/teachpack/htdp/Docs/world.thtml
Matthias Felleisen b4a2f0570e indexed world
svn: r1600
2005-12-12 21:10:48 +00:00

69 lines
2.9 KiB
Plaintext

{ (define LIBNAME "Animated Images")
(include "head.tinc") }
<p>The teachpack provides two kinds of functions. The first four allow
students to simulate a small world of animated drawings and games:
<menu>
<li><code>{(idx big-bang)} : Number Number Number World -> true</code><br>
<code>(big-bang width height n w)</code>
creates and shows a width x height canvas,
starts the clock,
makes it tick every n seconds,
and makes w the first world
<li><code>{(idx on-tick-event)} : (World -> World) -> true</code><br>
<code>(on-tick-event tock)</code> means that DrScheme must call <code>tock</code>
on the current world every time the clock ticks; it uses the result as the next world
<li><code>{(idx on-key-event)} : (World KeyEvent -> World) -> true</code><br>
<code>(on-key-event change)</code> means that DrScheme must call
<code>change</code> on the current world and a (representation of the)
keyevent for every keystroke the programmer (user of the computer) makes; it uses
the result as the next world
<pre>
<code>
;; A KeyEvent is one of:
;; -- Char (char?)
;; -- Symbol (symbol?)
</code>
When the Keyevent is a char, the programmer (user of the computer) has hit an
alphanumeric key. Symbols such as <code>'left</code>, <code>'right</code>,
<code>'up</code>, <code>'down</code>, <code>'release</code> denote arrow keys
or the events of releasing a key on the keypad.
</pre>
<li><code>{(idx on-redraw)} : (World -> Image) -> true</code><br>
<code>(on-tick-event world->image)</code> means that DrScheme
calls <code>world->image</code> whenever the canvas must be redrawn; the
result is displayed in the teachpack's canvas
<li><code>{(idx end-of-time)} : String u Symbol -> World</code><br> When DrScheme
evaluates <code>(end-of-time)</code>, it stops the clock and displays the
given string or symbol; no further tick events, key events, or redraw events
take place until the world is created again. </menu></p>
<p>The rest are functions for creating scenes:
<menu>
<li><code>{(idx nw:rectangle)} : Number Number Mode Color -> Image</code><br>
<code>(nw:rectangle width height mode color)</code>
creates a width x height rectangle, solid or outlined,
with its anchor in the NW corner
<li><code>{(idx empty-scene)} : Number Number -> Scene</code><br>
<code>(empty-scene width height)</code>
creates a width x height "scene" (frame with origin in NW)
<li><code>{(idx place-image)} : Image Number Number Scence -> Scene</code><br>
<code>(place-image image x y scene)</code>
places image at (x,y) into scene; (x,y) are comp. graph. coordinates
<li><code>{(idx run-movie)} : (Listof Image) -> true </code><br>
<code>(run-movie loi)</code>
shows the list of images in loi, time-delayed
</menu></p>
<p>Finally, the teachpack provides all the functions that image.ss provides. </p>
{(include "foot.tinc")}