\MOVE 1 TO #1007\ON KEY F10 JUMP MASTER
\READ 081109PW.FON
\LOC 0,186\WID 320 DOTS CENT\HEI 12\OVE 0
Press the "return" key to continue...
\ON KEY 7181 JUMP CONT1
\MOVE 9 TO X\MOVE 183 TO Y\MOVE 4 TO #942
\MOVE 1 TO #603
\MOVE 4 TO #2005  ;WINDOW WIDTH-EACH BLDG IS DIFFO
\MOVE 40 TO M\CALL RANDOM_NUMBER
\DRAW C#942JX-3,Y,R320\CALL BUILD_HOUSES
\X CONT1\ON KEY 7181\CLEAR SCREEN\PAINT
\LOC 10,7\HEI 199\WID 180 DOTS\OVE 0,A,2
Computer graphics are
usually either RASTER
images or VECTOR images.
Raster images can be
thought of as an elec-
tronic sheet of paper.
Anything you draw on the
paper can be displayed
later.  Vector images
can be thought of as the
dots in a connect-the-
dots drawing.  The
computer can connect
the dots with line seg-
ments if desired.
\READ MANRUNNG.PIC\SHOW 215,6,11\APPEND VWINDOW2.PIC 1,2\SHOW 215,6,12
\LOC 194,105\HEI 74\WID 115 DOTS C\OVER 0,O,32
The drawing
above is a
raster image.
The lines around
it are done with
with vectors.
\WAIT RET 90
\LOC 10,7\HEI 187\WID 180 DOTS\OVE 0,A,226
In order to animate a
raster image, all one
needs to do is draw
the individual frames
that are needed for
the animation.  The
process is just like
making cartoons, ex-
cept you do not need
to redraw the whole
page (screen) if you
don't want to.  And
of course, you can
change, redraw, re-
color, etc. as often
as you like.
\LOC 194,105\HEI 77\WID 115 DOTS C\SCRO 0,X,39
This image of a
man running is
done with 11
frames and is
shown with a
pause between
each one.
\LOC 0,188\WID 320 DOTS C\OVE 0,A,218
Press the "return" key to continue...
\ON KEY 7181 JUMP VECTORS\ROUNDS 92 SPEED 62
\READ MANRUNNG.PIC\SHOW 215,5,1,11
\X VECTORS\ON KEY 7181
\SHOW 215,6,12,12,X
\LOC 10,7\HEI 187\WID 180 DOTS\OVE 0,A,228
Vector images are like
a connect-the-dot
drawing.  You can
connect the individual
dots in the frame or
you can just display
the dots.  You can
also use vector
frames as paths for
your animations, or
as timing contols
for a variably-timed
action.  Vector
frames can be over
4,000 dots long!
\"
\LOC 188,105\HEI 79\WID 130 DOTS C\OVER 0,O,8
Strings of dots
from the vector
frame around the
man are now being
shown, offering
another method
of image display!
\CLEAR SPRITES\ROUNDS -1 SPEED 11
\SPRITE T=R S=1,8 I=20,20 L=205,-3 X=A\SPRINT 12
\SPRITE R=0,-1 I=40,40 S=1078,18\SPRINT 12
\SPRITE R=0,-1 I=30,30 S=349,5\SPRINT 12
\SPRITE R=90,-1 I=12,12 S=349,8\SPRINT 12
\SPRITE R=120,-1 I=12,12 S=1078,11\SPRINT 12
\SPRITE R=180,-1 I=19,19 S=1,9\SPRINT 12
\CLEAR SPRITE 0
\ON KEY 7181 JUMP THE_LANGUAGE
\SPRITES L=215,5 A=3 \SPRINT 1 TO 11
\RUN
\X THE_LANGUAGE\ON KEY 7181
\LOC 10,0\OVE 0,A,7\WID 310 DOTS \HEI 199
   The pictures are put on the screen
   by commands that describe where they
   should be placed, how fast they should
   be displayed, and for how long.  These
   commands comprise the P11 programming
   language.  Commands for math, reading
   picture files, and for interacting
   with the user are all available and
   are all explained in the technical
   reference guide that comes with each
   copy of P11.  A beginner's tutorial and
   many additional demos are all included,
   and customer support is available
   whenever you need it.
\BL 0,153,320,199\ON KEY 7181 JUMP MASTER
\LOC 0,188\WID 320 DOTS C\OVE 0,A,229
Amazing-it is SHAREWARE!
\ROUNDS 1 SPEE 0\MARQ 72,187,245,199,5,11
\READ CATGALOP.PIC\CLEAR SPRITES
\SPRITE M=7,0 T=R E=270,0,350,199 A=1 L=-40,155 W=50,0,270,199
\ROUNDS -1 SPEE 27
\SPRINT 1 TO 12\RUN
\X MASTER\PAINT\READ #97:MENU.TXT
\X BUILD_HOUSES
\MOVE 80 TO M\CALL RANDOM_NUMBER
\IF X>274\JUMP BLINK_LIGHTS\ENDIF
\IF X+R>310\JUMP BUILD_HOUSES\ENDIF
\DRAW J X,Y,U R\MOVE R TO Q
\MOVE 40 TO M\CALL RANDOM_NUMBER
\IF X+R>315\MOVE 316 TO R\SUB X FROM R\ENDIF\DRAW R R+1,D Q,R5
\MOVE Q TO S\MOVE R TO T
\MOVE R TO W\DIVIDE W BY (3+#2005) REM Z
\MOVE Z/2 TO Z\MOVE Z TO W
\CALL WINDOWS
\DRAW J X+1,Y-1,C#942,P 6,A,E1\ADD R+6 TO X
\JUMP BUILD_HOUSES\RETURN
\X RANDOM_NUMBER
\MOVE TIME&DATE[19,2] TO #602\CONVERT #602\MOVE #602 TO R
\MOVE TIME&DATE[16,2] TO #602\CONVERT #602\ADD #602 TO R
\X CHECKR
\IF R>M\SUBTRACT 50 FROM R\JUMP CHECKR\ENDIF
\IF R<20\ADD 20 TO R\JUMP CHECKR\ENDIF
\RETURN
\X WINDOWS\IF X+W+2<317\+
\DRAW C6J X+W+((#2005-1)/2),Y-S+3,R#2005D3L#2005U3\+
\MOVE TIME&DATE[20,1] TO #602\CONVERT #602\MOVE #602 TO A\+
\MOVE TIME&DATE[17,1] TO #602\CONVERT #602\ADD A TO #602\+
\ADD 1 TO #603\IF #602<8 AND #603>6\MOVE 0 TO #603\+
\CONVERT #602\IF #602<8 AND #603>6
\MOVE 0 TO #603\WAIT NOW 25
\DRAW C,M+1,+1,P 6,A,C14F1C6\ELSE\+
\DRAW C,M+1,+1,P 6,A,C8F1C6\ENDIF\+
\SUBTRACT 8 FROM S\IF S>8\JUMP WINDOWS\ENDIF
\MOVE Q TO S\ADD 3+#2005 TO W\+
\IF W<R-(Z+#2005)\JUMP WINDOWS\ENDIF\+
\MOVE R TO #2006\MOVE 30 TO M\CALL RANDOM_NUMBER\MOVE (R-18)/2+2 TO #2005\+
\MOVE #2006 TO R\+
\X WINDOUT\RETURN
\X BLINK_LIGHTS
\MOVE 80 TO M\CALL RANDOM_NUMBER\MOVE R TO Q\WAIT NOW 13
\CALL RANDOM_NUMBER\MOVE 1 TO T
\X NEXTDOT\DOT R*3,Q+110,?\IF A=8
\DRAW C,J R*3,Q+110,P 6,A\DOT R*3,Q+110,14\ELSE\IF A=14
\DRAW C,J R*3,Q+110,P 6,A\DOT R*3,Q+110,8
\ELSE\IF T<20\ADD 1 TO T \ADD 11 TO R\JUMP NEXTDOT
\ENDIF
\JUMP BLINK_LIGHTS
