home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / dev / amos / PrgCollection.lha / Demo13.AMOS / Demo13.amosSourceCode < prev    next >
Encoding:
AMOS Source Code  |  1994-03-12  |  5.1 KB  |  178 lines

  1. ' *************************************
  2. ' *                                   *
  3. ' *           Demo 10 V1.0            *
  4. ' *      Written by Chris Hodges      *
  5. ' *                                   *
  6. ' *************************************
  7. '
  8. Set Buffer 20
  9. Hide 
  10. Dim C1(7),PA(359,1),SI(359),CO(359),LC(4),TC(5)
  11. Gosub INITVARS
  12. Gosub INITSCREEN
  13. Track Loop On : Track Play 3
  14. Shift Up 1,9,15,1
  15. Screen 2
  16. Repeat 
  17.   Wait Vbl 
  18.   Gosub SPRITS
  19.   Gosub LOCO
  20.   Gosub SCROL
  21.   Gosub CYCLE
  22.   Gosub RAIBOW
  23. Until Mouse Key=1
  24. Track Stop 
  25. Sprite Off 
  26. Screen Close 0
  27. Screen Close 1
  28. Screen Close 2
  29. End 
  30. INITVARS:
  31.   Degree 
  32.   For A=0 To 359
  33.     SI(A)=Sin(A)*100
  34.     CO(A)=Cos(A)*100
  35.     PA(A,0)=Sin(A)*50+Cos(A*2)*100+288
  36.     PA(A,1)=Cos(A)*45+Sin(A*4)*45+135
  37.   Next 
  38.   Set Rainbow 0,7,160,"","",""
  39.   For A=0 To 15
  40.     Rain(0,A)=A*$100 : Rain(0,A+16)=(15-A)*$100
  41.     Rain(0,A+32)=A*$110 : Rain(0,A+48)=(15-A)*$110
  42.     Rain(0,A+64)=A*$10 : Rain(0,A+80)=(15-A)*$10
  43.     Rain(0,A+96)=A*$11 : Rain(0,A+112)=(15-A)*$11
  44.     Rain(0,A+128)=A*$101 : Rain(0,A+144)=(15-A)*$101
  45.   Next 
  46.   S$="s8AND AGAIN HERE IS CHRISTOPHER HODGES PRESENTING A NEW INTRO!fh3    DO YOU"
  47.   S$=S$+" LIKE IT???     s7 s6YES?   s7Gs8OOD!s9        s8NOTHING TOs7 SAY ABOs6UT IT, BUT "
  48.   S$=S$+"LETS TALKs5 ABOUTs4 AMOS BUGS...      1. DUAL PLAYFIELD       THIS IS STILL VERY UN"
  49.   S$=S$+"PROFESSIONAL.    TRY TO SET THE SCREEN OFFSET OF SCREEN ONE TO A MULTIPLE OF 16 AND "
  50.   S$=S$+"SET THE OFFSET OF SCREEN TWO TO AN OTHER COORDINATE.     YOU WILL CERTAINLY NOTICE, "
  51.   S$=S$+"THAT THE OFFSET OF SCREEN TWO WILL BE CUT TO THE NEAREST MULTIPLE OF 16.      "
  52.   S$=S$+"A SCREEN DISPLAY FIX COMMAND WOULD HELP!          "
  53.   S$=S$+"    2. AMOS PRO MUSIC EXTENSION V2.0       THE SHOOT, BELL AND BOOM COMMANDS "
  54.   S$=S$+"DO NOT WORK ANY LONGER.    THEY SIMPLY CAUSE A GURU.           "
  55.   S$=S$+"3. AMOS PRO COMPILER         SOME COMPILED PROGRAMMS DO NOT WORK FROM WORKBENCH.     "
  56.   S$=S$+"   IT'S MORE THAN A SIMPLE CRASH, MOST HARDWARE REGS ARE MODIFIED CAUSING SOME MINOR "
  57.   S$=S$+"DAMAGE TO MY HARDWARE CLOCK.   "
  58.   S$=S$+"        s7  s6AFTER THIS SOME GREETINGS "
  59.   S$=S$+"TO HENDRIK H. HEIMEfR,   MICHAEL BERCHTOLfD,   MAD HENRfY,   MR. SNOOPfY,   JARfO,"
  60.   S$=S$+"   HANS-PETEfR,   DIE ZWILLINGfE AND s9TO saALL sbOTHscER AMsdIGA UseSERS!sf!!      "
  61.   S$=S$+"      s8THATS ALL I WANT TO SAY,     SEE YA SOON!        BYE!                     "
  62.   SP=8
  63.   XS=0 : YS=0
  64.   XX=1610 : YY=3000
  65.   TX=1610 : TY=1000
  66.   WI=0 : WII=0
  67.   G=0 : PO=0 : S=0
  68.   RP=0
  69. Return 
  70. INITSCREEN:
  71.   Screen Open 2,640+5*32,25,8,0
  72.   Curs Off : Flash Off : Paper 0 : Pen 1 : Cls 
  73.   Get Icon Palette 
  74.   For A=0 To 5 : TC(A)=Colour(A+1) : Next 
  75.   Screen Display 2,128,240,320,25
  76.   Wait Vbl 
  77.   Unpack 9 To 0
  78.   Screen Offset 0,1,0
  79.   Screen Display 0,128,40,320,199
  80.   For A=0 To 7 : C1(A)=Colour(A) : Colour A,0 : Next 
  81.   Wait Vbl 
  82.   Unpack 10 To 1
  83.   Screen Offset 1,1,0
  84.   Screen Display 1,128,40,320,199
  85.   Wait Vbl 
  86.   Screen 1
  87.   Sprite Priority 0
  88.   Dual Playfield 1,0
  89.   Dual Priority 1,0
  90.   For A=0 To 7 : Colour A+8,C1(A) : Next 
  91.   Colour 17,$F80 : Colour 18,$840 : Colour 19,$420
  92.   Colour 21,$8F0 : Colour 22,$480 : Colour 23,$240
  93.   Colour 25,$8F : Colour 26,$48 : Colour 27,$24
  94.   Colour 29,$F8 : Colour 30,$84 : Colour 31,$42
  95.   For A=0 To 6
  96.     If A=0 Then B=1
  97.     If A=1 Then B=2
  98.     If A=2 Then B=3
  99.     If A=3 Then B=4
  100.     If A=4 Then B=2
  101.     If A=5 Then B=5
  102.     If A=6 Then B=3
  103.     Sprite A,0,0,B
  104.   Next 
  105. Return 
  106. RAIBOW:
  107.   Rainbow 0,RP,240,25
  108.   Add RP,1,0 To 159
  109. Return 
  110. CYCLE:
  111.   If WAIFIN>0 Then Dec WAIFIN : Return 
  112.   If Rnd(50)=0
  113.     Screen 1
  114.     C0=Rnd(6)+8 : C1=Rnd(6)+8 : C2=Rnd(6)+8
  115.     For A=0 To 4
  116.       LC(A)=$FFF-((((C0*A)/4)*$100)+(((C1*A)/4)*$10)+(C2*A)/4)
  117.     Next 
  118.     Fade 3,0,LC(0),LC(1),LC(2),LC(3),LC(4)
  119.     WAIFIN=48
  120.     Screen 2
  121.   End If 
  122.   If Rnd(50)=0
  123.     C0=Rnd(8)+6 : C1=Rnd(8)+6 : C2=Rnd(8)+6
  124.     For A=0 To 5
  125.       TC(A)=$FFF-((((C0*A)/5)*$100)+(((C1*A)/5)*$10)+(C2*A)/5)
  126.     Next 
  127.     Fade 2,0,TC(0),TC(1),TC(2),TC(3),TC(4),TC(5)
  128.     WAIFIN=32
  129.   End If 
  130. Return 
  131. SPRITS:
  132.   P=PO
  133.   For A=0 To 6
  134.     P=(P+354) mod 360
  135.     Sprite A,PA(P,0),PA(P,1),
  136.   Next 
  137.   Add PO,1,0 To 360
  138. Return 
  139. SCROL:
  140.   If CO>0
  141.     WAIFIN=32
  142.     Colour CO,$FFF : Inc CO
  143.     Colour CO,$FFF : Inc CO
  144.     If CO>15
  145.       CO=0 : WAIFIN=32
  146.       Fade 2,0,TC(0),TC(1),TC(2),TC(3),TC(4),TC(5),0
  147.     End If 
  148.   End If 
  149.   If H=0 Then Add SXX,SP : Add PX,SP : If PX>31 Then Add PX,-32 : SXX=SXX mod 384 : Gosub NL
  150.   H=Max(H-1,0) : Screen Offset 2,SXX+64,
  151.   If Mouse Key=2 Then Inc H
  152. Return 
  153. NL:
  154.   Add S,1,1 To Len(S$) : B=Asc(Mid$(S$,S,1))
  155.   If B=102 Then CO=1 : Goto NL
  156.   If B=104 Then Inc S : H=Val(Mid$(S$,S,1))*20 : Add SXX,-SP : Goto NL
  157.   If B=115 Then Inc S : SP=Val("$"+Mid$(S$,S,1))+1 : Goto NL
  158.   Paste Icon 384+SXX-PX,0,B-31 : Paste Icon SXX-PX,0,B-31
  159. Return 
  160. LOCO:
  161.   Add G,1,-600 To 600
  162.   WI=(WI+Rnd(3)) mod 360
  163.   X=Min(Max(XX/10,-160),480)
  164.   Y=286-Min(Max(YY/10,1),286)
  165.   If X<0 Then Dec Y : Add X,640
  166.   Screen Offset 1,X,Y
  167.   Add XX,XS : Add YY,YS
  168.   X=TX-XX
  169.   XS=Min(Max(XS+Sgn(X)*2,Min(-Abs(X)/15,-40)),Max(Abs(X)/15,40))
  170.   Y=TY-YY
  171.   YS=Min(Max(YS+Sgn(Y)*2,Min(-Abs(Y)/15,-40)),Max(Abs(Y)/15,40))
  172.   If PA
  173.     TX=CO(WI)*(Abs(G*2)+1600)/100+1600 : TY=SI(WI)*(Abs(G)+700)/100+1430
  174.   Else 
  175.     TX=1610 : TY=1500
  176.   End If 
  177.   If Rnd(100)=0 Then PA=1-PA
  178. Return