home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / authors / tony_vecqueray / amal_joy.amos / amal_joy.amosSourceCode next >
AMOS Source Code  |  1993-03-07  |  3KB  |  68 lines

  1. '                              AMAL_Joy    
  2. '                              --------  
  3. ' Amal Joystick routine.With fire button detection.
  4. ' -------------------------------------------------
  5. ' The program AnimatedBob by Neil Kennedy on TA 10 works well, but uses  
  6. ' five channels.I wrote this routine which uses just one channel,thus
  7. ' freeing four channels for other applications.
  8. ' The only problem i had was with Images 10 & 12 which would not reverse,  
  9. ' I think this was due to the fact i was jumping from a loop with
  10. ' reversed Images to another loop of reversed Images.
  11. ' I cured the problem by flipping Images 10 & 12 in the Object Editor, 
  12. ' and saved then as Images 13 & 14. (Hot spot not altered).
  13. ' I hope this routine will be of use to Neil and others. 
  14. ' NOTE:- To jump up in Amal while moving up use J1&16 & J1&17
  15. '        To jump down in Amal while moving down use J1&16 & J1&18
  16. '                                                 Tony Vecqueray.  
  17. Screen Open 0,320,256,16,Lowres
  18. Curs Off : Flash Off : Hide 
  19. 'Load Sprites Here 
  20. Double Buffer 
  21. ' Changed from Get Bob Palette for other AMOS versions.
  22. Get Sprite Palette 
  23. ' Slow down Updating process. i.e Number of Vbl's between each screen update.
  24. Update Every 6
  25. Gosub JST : Hot Spot 13,20,0 : Hot Spot 14,20,0
  26. Do 
  27.    Rem Main Program Loop
  28.    Exit If Mouse Key
  29.    'Read Joystick Values,with and without Fire button depressed.
  30.    'J=Joy(1)
  31.    'Print Bin$(J,5),J 
  32. Loop 
  33. Cls : Amal Off : Default : Edit 
  34. JST:
  35. A$="Begin:"
  36. A$=A$+"If J1&4 then Jump L;" : Rem Left 
  37. A$=A$+"If J1&8 then Jump R;" : Rem Right
  38. A$=A$+"If J1&2 then Jump D;" : Rem Down 
  39. A$=A$+"If J1&1 then Jump U;" : Rem Up 
  40. A$=A$+"Jump Begin;"
  41. A$=A$+"L:Anim 2,($8004,5)($8005,5)($8006,5)($8007,5)($8008,5)($8009,5);"
  42. A$=A$+"If X<50 then Jump Begin;" : Rem X Left Limit 
  43. ' J1&16 Fire button depressed. J1&20 Joystick Left.
  44. A$=A$+"If J1&16 & J1&20 then Jump W;"
  45. A$=A$+"Move -10,0,30;Jump Begin;"
  46. A$=A$+"R:Anim 2,(4,5)(5,5)(6,5)(7,5)(8,5)(9,5);"
  47. A$=A$+"If X>270 then Jump Begin;" : Rem X Right Limit
  48. ' J1&16 Fire button depressed. J1&24 Joystick Right. 
  49. A$=A$+"If J1&16 & J1&24 then Jump E;"
  50. A$=A$+"Move 10,0,30;Jump Begin;"
  51. A$=A$+"D:Anim 2,(1,10)(2,10)(3,10);"
  52. A$=A$+"If Y>190 then Jump Begin;" : Rem Y Lower Limit
  53. A$=A$+"Move 5,16,16;Jump Begin;"
  54. A$=A$+"U:Anim 2,(1,10)(2,10)(3,10);"
  55. A$=A$+"If Y<14 then Jump Begin;" : Rem Y Upper Limit
  56. A$=A$+"Move -5,-16,16;Jump Begin;"
  57. A$=A$+"W:Anim 2,(13,5)(14,5);" : Rem Jump routine Left
  58. ' X Left Limit,Y Upper Limit. | is equal to Or in Basic. 
  59. A$=A$+"If X<50 | Y<14 then Jump Begin;"
  60. A$=A$+"Move -12,-30,8;Move -4,0,2;Move -12,30,8;Jump Begin;"
  61. A$=A$+"E:Anim 2,(10,5)(12,5);" : Rem Jump routine Right 
  62. ' X Right Limit,Y Upper Limit. | is equal to Or in Basic.  
  63. A$=A$+"If X>270 | Y<14 then Jump Begin;"
  64. A$=A$+"Move 12,-30,8;Move 4,0,2;Move 12,30,8;Jump Begin;"
  65. Bob 1,120,108,1
  66. Channel 0 To Bob 1
  67. Amal 0,A$ : Amal On 0
  68. Return