home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 451-475 / apd470 / neil_kennedy / squish.amos / squish.amosSourceCode < prev   
AMOS Source Code  |  1993-03-07  |  7KB  |  364 lines

  1. '***************************************************************************** 
  2. ' MY FIRST GAME
  3. ' BY 
  4. ' NEIL KENNEDY 
  5. '  
  6. ' This is my first REAL attempt at a game.  For the past six months, while I've
  7. ' been learning AMOS all I have written is a LOT of joystick control routines, 
  8. ' a few utilities, and basically I have been taking it one step at a time. 
  9. '
  10. ' I now feel ready to start programing small games, like this one.  So here  
  11. ' goes.
  12. '
  13. ' Does anybody else have any ideas for small games like this ? I couldn't
  14. ' think of any sort of game to write, but my friend Karl, suggested this.
  15. ' And so Squish was born ( so blame him, not me )..  If you have any   
  16. ' great ideas then please send them to either T.A. or me, and I'll do best   
  17. ' to make a game out of them.
  18. ' Graphics would also be appreciated.  I had to draw the blobs in this game  
  19. ' and as you can see, I'm no Rico Holmes.
  20. '
  21. ' Written ON : Thursday 24th June 1993, 5 days to go until I'm 17, then no'one will be safe on the roads :-> 
  22. ' Time Taken : About three hours, that includes the labourious tasks such as making tea, etc.. 
  23. '
  24. '***************************************************************************** 
  25. '                              CREDITS 
  26. '  
  27. ' ALL CODE BY        : NEIL KENNEDY  
  28. ' KNIGHT GRAPHICS BY : DICON PEEKE  ( Please send in more graphics to TA Dicon ) 
  29. ' BLOB GRAPHICS BY   : NEIL KENNEDY ( Sorry ! )
  30. ' INITIAL IDEA BY    : KARL IRWIN   ( Karl offered to teach me to drive, but I'm not that irresponsible.   
  31. '
  32. '***************************************************************************** 
  33. '
  34. 'INSTRUCTION ARE ON TA11, IN THE "FILES ON DISK" SECTION.
  35. '
  36. '***************************************************************************** 
  37.  
  38. ' ***** THIS IS THE MAIN SCREEN. 
  39. Screen Open 0,326,256,16,Lowres
  40. Hide : Curs Off : Flash Off : Cls 0
  41.  
  42. If Length(1)=False
  43.    Load "TA11:SOURCE_PROGS/KNIGHT.Abk"
  44. End If 
  45.  
  46. Get Sprite Palette 
  47. Double Buffer 
  48. Randomize Timer
  49.  
  50. ' **** THIS IS THE SCREEN THAT KEEPS OUR LIVES.
  51. Screen Open 1,640,8,2,Hires
  52. Screen Display 1,,41,,
  53. Curs Off : Palette $0,$FFF
  54. SCORE=50 : Rem ***** THIS IS TO GIVE YOU A CHANCE 
  55. Centre "SCORE =>  "+Str$(SCORE)
  56.  
  57. ' ***** SWITCH BACK TO SCREEN 0, THE MAIN SCREEN.
  58. Screen 0
  59.  
  60. ' ***** CHANGE "APEAR" and _POPUP TO A LOW NUMBER FOR MORE BLOBS, OR HIGH FOR LESS 
  61. ' ***** CHANGE BOTH VALUES TO 5 FOR A GOOD CHALLENGE, ITS ACTUALLY QUITE HARD. 
  62. APEAR=10
  63. _POPUP=10
  64.  
  65. Bob 1,150,100,1
  66. Channel 1 To Bob 1
  67.  
  68. ' ***** THIS PUTS THE HOLES ON THE GROUND
  69. SETBADDIES
  70.  
  71. Do 
  72.    
  73.    ' ***** HERE, WE DECIDE WHERE OUR BOB WILL APPEAR. 
  74.    GOTIT$=Inkey$
  75.    
  76.    If GOTIT$="1"
  77.       NUM1
  78.    End If 
  79.    
  80.    If GOTIT$="2"
  81.       NUM2
  82.    End If 
  83.    
  84.    If GOTIT$="3"
  85.       NUM3
  86.    End If 
  87.    
  88.    If GOTIT$="4"
  89.       NUM4
  90.    End If 
  91.    
  92.    If GOTIT$="5"
  93.       NUM5
  94.    End If 
  95.    
  96.    If GOTIT$="6"
  97.       NUM6
  98.    End If 
  99.    
  100.    ' ***** THIS MEANS THAT BLOBS WILL APPEAR AT CERTAIN INTERVALS.
  101.    Add CHANCE,1,1 To APEAR
  102.    
  103.    If CHANCE=APEAR
  104.       WHERE=Rnd(5)+1
  105.       On WHERE Proc BAD1,BAD2,BAD3,BAD4,BAD5,BAD6
  106.    End If 
  107.    
  108.    ' ***** CHECK FOR COLLISIONS 
  109.    HIT
  110.    
  111.    ' ***** CHANGE THE SQUISHED BOBS TO HOLES AGAIN
  112.    Add CLEAN,1,1 To _POPUP
  113.    
  114.    If CLEAN=_POPUP
  115.       CLEANUP
  116.    End If 
  117.    
  118.    SCORE
  119.    
  120. Loop 
  121.  
  122. Procedure NUM1
  123.    
  124.    Amal 1," Move 0,10,5 ; Move 0,-10,5 ; "
  125.    Bob 1,65,100,11
  126.    Amal On 1
  127.    
  128. End Proc
  129.  
  130. Procedure NUM2
  131.    
  132.    Amal 1," Move 0,10,5 ; Move 0,-10,5 ; "
  133.    Bob 1,105,100,11
  134.    Amal On 1
  135.    
  136. End Proc
  137.  
  138. Procedure NUM3
  139.    
  140.    Amal 1,"  Move 0,10,5 ; Move 0,-10,5 ; "
  141.    Bob 1,145,100,11
  142.    Amal On 1
  143.    
  144. End Proc
  145.  
  146. Procedure NUM4
  147.    
  148.    Amal 1,"  Move 0,10,5 ; Move 0,-10,5 ; "
  149.    Bob 1,185,100,11
  150.    Amal On 1
  151.    
  152. End Proc
  153.  
  154. Procedure NUM5
  155.    
  156.    Amal 1," Move 0,10,5 ; Move 0,-10,5 ; "
  157.    Bob 1,225,100,11
  158.    Amal On 1
  159.    
  160. End Proc
  161.  
  162. Procedure NUM6
  163.    
  164.    Amal 1," Move 0,10,5 ; Move 0,-10,5 ; "
  165.    Bob 1,265,100,11
  166.    Amal On 1
  167.    
  168. End Proc
  169.  
  170. Procedure SETBADDIES
  171.    
  172.    For LOP=1 To 6
  173.       Bob LOP+1,LOP*40,90,13
  174.    Next LOP
  175.    
  176.    Pen 8 : Paper 0
  177.    Locate 7,20
  178.    Print "1    2    3    4    5    6"
  179.    
  180. End Proc
  181.  
  182. Procedure DEAD
  183.    
  184.    Shared _TOPSCORE
  185.    
  186.    Screen 0
  187.    Fade 3
  188.    Wait 45
  189.    Screen 1
  190.    Print 
  191.    Centre "YOUR TOP SCORE WAS =>  "+Str$(_TOPSCORE)
  192.    Wait Key 
  193.    Fade 2,$FFF,$FFF
  194.    Wait 30
  195.    Fade 2,$0,$0
  196.    Wait 30
  197.    Edit 
  198.    
  199. End Proc
  200.  
  201. Procedure BAD1
  202.    
  203.    Shared SCORE
  204.    
  205.    If I Bob(2)=14
  206.       Bob 2,,,15
  207.    Else 
  208.       If I Bob(2)=15
  209.          Add SCORE,-10
  210.          Shoot 
  211.          Bob 2,,,14
  212.       Else 
  213.          Bob 2,,,14
  214.       End If 
  215.    End If 
  216.    
  217. End Proc
  218.  
  219. Procedure BAD2
  220.  
  221.    Shared SCORE
  222.    
  223.    If I Bob(3)=14
  224.       Bob 3,,,15
  225.    Else 
  226.       If I Bob(3)=15
  227.          Add SCORE,-10
  228.          Shoot 
  229.          Bob 3,,,14
  230.       Else 
  231.          Bob 3,,,14
  232.       End If 
  233.    End If 
  234.    
  235. End Proc
  236.  
  237. Procedure BAD3
  238.    
  239.    Shared SCORE
  240.    
  241.    If I Bob(4)=14
  242.       Bob 4,,,15
  243.    Else 
  244.       If I Bob(4)=15
  245.          Add SCORE,-10
  246.          Shoot 
  247.          Bob 4,,,14
  248.       Else 
  249.          Bob 4,,,14
  250.       End If 
  251.    End If 
  252.    
  253. End Proc
  254.  
  255. Procedure BAD4
  256.    
  257.    Shared SCORE
  258.    
  259.    If I Bob(5)=14
  260.       Bob 5,,,15
  261.    Else 
  262.       If I Bob(5)=15
  263.          Add SCORE,-10
  264.          Shoot 
  265.          Bob 5,,,14
  266.       Else 
  267.          Bob 5,,,14
  268.       End If 
  269.    End If 
  270.    
  271. End Proc
  272.  
  273. Procedure BAD5
  274.    
  275.    Shared SCORE
  276.    
  277.    If I Bob(6)=14
  278.       Bob 6,,,15
  279.    Else 
  280.       If I Bob(6)=15
  281.          Add SCORE,-10
  282.          Shoot 
  283.          Bob 6,,,14
  284.       Else 
  285.          Bob 6,,,14
  286.       End If 
  287.    End If 
  288.    
  289. End Proc
  290.  
  291. Procedure BAD6
  292.    
  293.    Shared SCORE
  294.    
  295.    If I Bob(7)=14
  296.       Bob 7,,,15
  297.    Else 
  298.       If I Bob(7)=15
  299.          Add SCORE,-10
  300.          Shoot 
  301.          Bob 7,,,14
  302.       Else 
  303.          Bob 7,,,14
  304.       End If 
  305.    End If 
  306.    
  307. End Proc
  308.  
  309. Procedure HIT
  310.    
  311.    Shared SCORE
  312.    
  313.    For LOP=2 To 7
  314.       If Bob Col(1,LOP To LOP)
  315.          Boom 
  316.          Bob LOP,,,16
  317.          Add SCORE,10
  318.       End If 
  319.    Next LOP
  320.    
  321. End Proc
  322.  
  323. Procedure CLEANUP
  324.    
  325.    For LOP=2 To 7
  326.       If I Bob(LOP)=16
  327.          Bob LOP,,,13
  328.       End If 
  329.    Next LOP
  330.    
  331. End Proc
  332.  
  333. Procedure SCORE
  334.    
  335.    Shared SCORE,_TOPSCORE
  336.    
  337.    Screen 1
  338.    Print 
  339.    Centre "SCORE =>  "+Str$(SCORE)
  340.    If SCORE>_TOPSCORE
  341.       _TOPSCORE=SCORE
  342.    End If 
  343.    If SCORE<0
  344.       DEAD
  345.    End If 
  346.    Screen 0
  347.    
  348. End Proc
  349.  
  350.  
  351. '***************************************************************************** 
  352. '
  353. ' This game only took me about three hours to write, and tht includes drawing
  354. ' the baddies using the AMOS Pro Object editor, but I'm fairly pleased with
  355. ' the end result.  You can change it as much as you like.  How about putting 
  356. ' in a time limit, and giving the player a certain score that must be acheived 
  357. ' before he can progress onto the next level ? Its a bit easy at the minute, 
  358. ' but unfortunately I don't have much time to spend on this because TA11 will
  359. ' be out VERY soon.  Please send any changes to me or T.A., I'd love to see
  360. ' them.
  361. '
  362. ' ENJOY
  363. '
  364. '*****************************************************************************