After escaping the Grumpy Grumbles, Red now has some hurdles to jump (well 36
of them!). It ain't easy either as Red just has enough jumping power to jump
the 1st hurdle, though running helps increase that jumping power, but them
hurdles have another trick up their sleeve, they'll speed up the more you
successfully jump over them. It's your job to jump 36 of them, get the timing
right and manage the jumps correctly by not over jumping when not necessary,
Jump : Enter/Return Key
Any CPC Emulator with DSK Support should work. I use Winape 2.0 Alpha 18
while coding this program.
Program is compatable with Locomotive BASIC 1.0 and 1.1, so should work on
any Amstrad CPC Computer with Disc Drive.
For Loading, insert disk image into emulator, RUN"DISC to load, for which the
game will run immediately, alternatively LOAD"DISC to just load the game & RUN
game from there.
Break-down of the program:
1 - Setup Screen, Initialize Variables, Array, Blank Screen Inks, String Data
for Red & Draw Red
2 - Set Screen Inks for Red (Display Red), Use XOR Graphics Write Mode, Draw
Hurdles, Setup Variables a = Game Speed, c = colour of hurdle, l = length of
jump, g = lives (you only get 1 go!), s = score counter for number of hurdles
successfully jumped, r = round number if 3 hurdles are jumped the next new
3 - Main Game Loop, proceeds if s<36 and g=1, Event Driver is initialize with
'a' setting the speed of hurdles, Second Loop proceeds which continues while
r<3 and g=1, INKs, delay loop, animate foot movement and sound to produce
running sound. length of jump (l) is added during this moment and Enter/Return
Keypress Checked to determine if jump (on line 6) is required.
4 - 2nd loop reached, round score added to score and then reset & a is
decrease to increase speed. Main Game Loop reached (game either complete or
over). REMAIN(1) stops event driver. A While Loop checks if g is not equal to
1, then proceeds to Game Over Sequence by altering Red's Smile and playing
disruptive sound with alternating Border Flicker. This check is skipped if
g=1, though if true, f=1 to enter, f=0 is used to exit that loop. The last
part of line 4 sets up Text Message, pointer variable (p) & col (p)
5 - While loop checks if 36 hurdles have been jumped (s=36) and ensures g=1
in case Red stumbles on Hurdle 36, if both true, Change Red's Hair and eye to
Golden Yellow, Print Message (in multicolour) along top portion of screen &
play a game complete tune. Exit that loop, any further key returns to BASIC.
6 - Jumping Sequence involves printing a block of lower Leg, Make a jumpy
sound, check collisions in case hurdle collision has occurred, WHILE loop
counts the delay for the jump, j=1 to say Red's Jumping, INKs 1 & 2 remove the
lower legs/feet, p is increase while p is less than length of jump (l). Upon
exit Block of lower leg is deleted. Length of Jump is deducted by 25 & Jump
(j) = 0, a further check is done to ensure a collision hasn't occurred.
7 - Event Driver routine, A simple INK animating effect, 'c' reflects the
colour of each hurdle, this is decreased, though previous colour hurdle INK
c,1 is set to 1 to provide animation trick.
8 - Collision Test for when hurdle 12 (c=12) is active, routine checks if
jump is in play, but if j=0 then jump is not occurring, g=g-1 to end game,
otherwise round score (r) is increased.
9 - WHILE loop to check colour of Hurdle (c=7), this needs to become 15.Loop
exits and current Colour of hurdle INK c,26 is displayed.