Centralia Junior High School
Centralia, Illinois
Math and Computers
(All rights reserved. Do not reproduce without permission.)
Using MSW Logo for Windows.
Click Here to view Logo Procedures for pcLogo.
TO P :X :Y
SETXY :D * 6 * :X + :A 6 * :Y + :B
END
TO COPTER
PU P -1 3
PD P -6 3
P 4 3
P -1 3
P -1 2
P -2 1
P 2 1
P -7 1
P -2 0
P -1 -1
P 1 -1
P 2 0
P 2 1
P 1 2
P -1 2
PU P -8 2
PD P -6 0
PU P -8 0
PD P -6 2
END
TO ANIMATE
MAKE "D 1
FLYR -250 200 100
SPINLT 1
FLYL 200 30 100
SETPC [140 60 60] ALIEN -260 100
FLYL 30 0 100
SHOOT
SETPC [200 180 120] ALIEN -260 100
DESTROY -260 100
SETPC [255 255 255] ALIEN -260 100
FLYD 100 -80 0
FLYL 0 -250 -80
FLYU -80 90 -250
SPINRT -1
FLYU 90 100 -250
ANIMATE
END
TO FLYR :X1 :X2 :Y
IF :X1 > :X2 [STOP]
MAKE "A :X1
MAKE "B :Y
SETPC [0 0 0] COPTER
sound [120 3]
SETPC [255 255 255] COPTER
FLYR :X1 + 3 :X2 :Y
END
TO FLYL :X1 :X2 :Y
IF :X1 < :X2 [STOP]
MAKE "A :X1
MAKE "B :Y
SETPC [0 0 0] COPTER
sound [120 3]
SETPC [255 255 255] COPTER
FLYL :X1 - 3 :X2 :Y
END
TO FLYD :Y1 :Y2 :X
IF :Y1 < :Y2 [STOP]
MAKE "A :X
MAKE "B :Y1
SETPC [0 0 0] COPTER
sound [120 3]
SETPC [255 255 255] COPTER
FLYD :Y1 - 3 :Y2 :X
END
TO FLYU :Y1 :Y2 :X
IF :Y1 > :Y2 [STOP]
MAKE "A :X
MAKE "B :Y1
SETPC [0 0 0] COPTER
sound [120 3]
SETPC [255 255 255] COPTER
FLYU :Y1 + 3 :Y2 :X
END
TO SPINLT :N
IF :N < -1 [STOP]
MAKE "D :N
SETPC [0 0 0] COPTER
sound [120 3]
SETPC [255 255 255] COPTER
SPINLT :N - 0.40
END
TO SPINRT :N
IF :N > 1 [STOP]
MAKE "D :N
SETPC [0 0 0] COPTER
sound [120 3]
SETPC [255 255 255] COPTER
SPINRT :N + 0.40
END
TO SHOOT
MAKE "A 0 MAKE "B 100
SETPC [0 0 0] COPTER
PU P 2.1 0.40 SETHEADING :D * 90
SETPENSIZE [2 2] SETPC [255 0 0]
REPEAT 3 [OUT LASER IN]
SETHEADING 0 SETPENSIZE [1 1]
END
TO OUT
PD FD 220
END
TO IN
PE BK 220 WAIT 4 PPT PU
END
TO LASER
PLAYWAVE "laser.wav 0 ;file must be present
END
TO EXPLODE
PLAYWAVE "explode.wav 0 ;file must be present
END
TO ALIEN :X :Y
MAKE "A :X
MAKE "B :Y
PU P -2 2
PD P -1.5 3
P 1.5 3
P 2 2
P 0.50 1.6
P -0.50 1.6
P -2 2
P -4 1
P -4 0
P -3 -1
P -1 -1.5
P 1 -1.5
P 3 -1
P 4 0
P 4 1
P 2 2
P 4 1
P 1 0
P -1 0
P -4 1
PU P -1 -2
PD P -1 -3
PU P 0 -2
PD P 0 -3
PU P 1 -2
PD P 1 -3
END
TO BLAST :X :Y
MAKE "A :X
MAKE "B :Y
PU P 0 0 PD
REPEAT 12 [FD 24 BK 24 RT 30]
PU P -1 -4 PD P -2 -5
PU P 0 -5 PD P 1 -6
PU P -2 -7 PD FD 2
PU P 0 -7 PD FD 2
PU P 1 -8 PD FD 2
PU P 2 -5 PD FD 2
END
TO DESTROY :X :Y
SETPC [255 0 0] BLAST :X :Y
EXPLODE
SETPC [255 255 255] BLAST :X :Y
MAKE "A 0 MAKE "B 100
SETPC [255 255 255] COPTER
END