home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
451-475
/
apd470
/
neil_kennedy
/
squish.amos
/
squish.amosSourceCode
< prev
Wrap
AMOS Source Code
|
1993-03-07
|
7KB
|
364 lines
'*****************************************************************************
' MY FIRST GAME
' BY
' NEIL KENNEDY
'
' This is my first REAL attempt at a game. For the past six months, while I've
' been learning AMOS all I have written is a LOT of joystick control routines,
' a few utilities, and basically I have been taking it one step at a time.
'
' I now feel ready to start programing small games, like this one. So here
' goes.
'
' Does anybody else have any ideas for small games like this ? I couldn't
' think of any sort of game to write, but my friend Karl, suggested this.
' And so Squish was born ( so blame him, not me ).. If you have any
' great ideas then please send them to either T.A. or me, and I'll do best
' to make a game out of them.
' Graphics would also be appreciated. I had to draw the blobs in this game
' and as you can see, I'm no Rico Holmes.
'
' Written ON : Thursday 24th June 1993, 5 days to go until I'm 17, then no'one will be safe on the roads :->
' Time Taken : About three hours, that includes the labourious tasks such as making tea, etc..
'
'*****************************************************************************
' CREDITS
'
' ALL CODE BY : NEIL KENNEDY
' KNIGHT GRAPHICS BY : DICON PEEKE ( Please send in more graphics to TA Dicon )
' BLOB GRAPHICS BY : NEIL KENNEDY ( Sorry ! )
' INITIAL IDEA BY : KARL IRWIN ( Karl offered to teach me to drive, but I'm not that irresponsible.
'
'*****************************************************************************
'
'INSTRUCTION ARE ON TA11, IN THE "FILES ON DISK" SECTION.
'
'*****************************************************************************
' ***** THIS IS THE MAIN SCREEN.
Screen Open 0,326,256,16,Lowres
Hide : Curs Off : Flash Off : Cls 0
If Length(1)=False
Load "TA11:SOURCE_PROGS/KNIGHT.Abk"
End If
Get Sprite Palette
Double Buffer
Randomize Timer
' **** THIS IS THE SCREEN THAT KEEPS OUR LIVES.
Screen Open 1,640,8,2,Hires
Screen Display 1,,41,,
Curs Off : Palette $0,$FFF
SCORE=50 : Rem ***** THIS IS TO GIVE YOU A CHANCE
Centre "SCORE => "+Str$(SCORE)
' ***** SWITCH BACK TO SCREEN 0, THE MAIN SCREEN.
Screen 0
' ***** CHANGE "APEAR" and _POPUP TO A LOW NUMBER FOR MORE BLOBS, OR HIGH FOR LESS
' ***** CHANGE BOTH VALUES TO 5 FOR A GOOD CHALLENGE, ITS ACTUALLY QUITE HARD.
APEAR=10
_POPUP=10
Bob 1,150,100,1
Channel 1 To Bob 1
' ***** THIS PUTS THE HOLES ON THE GROUND
SETBADDIES
Do
' ***** HERE, WE DECIDE WHERE OUR BOB WILL APPEAR.
GOTIT$=Inkey$
If GOTIT$="1"
NUM1
End If
If GOTIT$="2"
NUM2
End If
If GOTIT$="3"
NUM3
End If
If GOTIT$="4"
NUM4
End If
If GOTIT$="5"
NUM5
End If
If GOTIT$="6"
NUM6
End If
' ***** THIS MEANS THAT BLOBS WILL APPEAR AT CERTAIN INTERVALS.
Add CHANCE,1,1 To APEAR
If CHANCE=APEAR
WHERE=Rnd(5)+1
On WHERE Proc BAD1,BAD2,BAD3,BAD4,BAD5,BAD6
End If
' ***** CHECK FOR COLLISIONS
HIT
' ***** CHANGE THE SQUISHED BOBS TO HOLES AGAIN
Add CLEAN,1,1 To _POPUP
If CLEAN=_POPUP
CLEANUP
End If
SCORE
Loop
Procedure NUM1
Amal 1," Move 0,10,5 ; Move 0,-10,5 ; "
Bob 1,65,100,11
Amal On 1
End Proc
Procedure NUM2
Amal 1," Move 0,10,5 ; Move 0,-10,5 ; "
Bob 1,105,100,11
Amal On 1
End Proc
Procedure NUM3
Amal 1," Move 0,10,5 ; Move 0,-10,5 ; "
Bob 1,145,100,11
Amal On 1
End Proc
Procedure NUM4
Amal 1," Move 0,10,5 ; Move 0,-10,5 ; "
Bob 1,185,100,11
Amal On 1
End Proc
Procedure NUM5
Amal 1," Move 0,10,5 ; Move 0,-10,5 ; "
Bob 1,225,100,11
Amal On 1
End Proc
Procedure NUM6
Amal 1," Move 0,10,5 ; Move 0,-10,5 ; "
Bob 1,265,100,11
Amal On 1
End Proc
Procedure SETBADDIES
For LOP=1 To 6
Bob LOP+1,LOP*40,90,13
Next LOP
Pen 8 : Paper 0
Locate 7,20
Print "1 2 3 4 5 6"
End Proc
Procedure DEAD
Shared _TOPSCORE
Screen 0
Fade 3
Wait 45
Screen 1
Print
Centre "YOUR TOP SCORE WAS => "+Str$(_TOPSCORE)
Wait Key
Fade 2,$FFF,$FFF
Wait 30
Fade 2,$0,$0
Wait 30
Edit
End Proc
Procedure BAD1
Shared SCORE
If I Bob(2)=14
Bob 2,,,15
Else
If I Bob(2)=15
Add SCORE,-10
Shoot
Bob 2,,,14
Else
Bob 2,,,14
End If
End If
End Proc
Procedure BAD2
Shared SCORE
If I Bob(3)=14
Bob 3,,,15
Else
If I Bob(3)=15
Add SCORE,-10
Shoot
Bob 3,,,14
Else
Bob 3,,,14
End If
End If
End Proc
Procedure BAD3
Shared SCORE
If I Bob(4)=14
Bob 4,,,15
Else
If I Bob(4)=15
Add SCORE,-10
Shoot
Bob 4,,,14
Else
Bob 4,,,14
End If
End If
End Proc
Procedure BAD4
Shared SCORE
If I Bob(5)=14
Bob 5,,,15
Else
If I Bob(5)=15
Add SCORE,-10
Shoot
Bob 5,,,14
Else
Bob 5,,,14
End If
End If
End Proc
Procedure BAD5
Shared SCORE
If I Bob(6)=14
Bob 6,,,15
Else
If I Bob(6)=15
Add SCORE,-10
Shoot
Bob 6,,,14
Else
Bob 6,,,14
End If
End If
End Proc
Procedure BAD6
Shared SCORE
If I Bob(7)=14
Bob 7,,,15
Else
If I Bob(7)=15
Add SCORE,-10
Shoot
Bob 7,,,14
Else
Bob 7,,,14
End If
End If
End Proc
Procedure HIT
Shared SCORE
For LOP=2 To 7
If Bob Col(1,LOP To LOP)
Boom
Bob LOP,,,16
Add SCORE,10
End If
Next LOP
End Proc
Procedure CLEANUP
For LOP=2 To 7
If I Bob(LOP)=16
Bob LOP,,,13
End If
Next LOP
End Proc
Procedure SCORE
Shared SCORE,_TOPSCORE
Screen 1
Print
Centre "SCORE => "+Str$(SCORE)
If SCORE>_TOPSCORE
_TOPSCORE=SCORE
End If
If SCORE<0
DEAD
End If
Screen 0
End Proc
'*****************************************************************************
'
' This game only took me about three hours to write, and tht includes drawing
' the baddies using the AMOS Pro Object editor, but I'm fairly pleased with
' the end result. You can change it as much as you like. How about putting
' in a time limit, and giving the player a certain score that must be acheived
' before he can progress onto the next level ? Its a bit easy at the minute,
' but unfortunately I don't have much time to spend on this because TA11 will
' be out VERY soon. Please send any changes to me or T.A., I'd love to see
' them.
'
' ENJOY
'
'*****************************************************************************