home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1992-02-26 | 1.3 KB | 58 lines |
- '
- '
- ' Multi-coloured lines
- ' and a little demo too (runs faster compiled!!)
- '
- Default Palette 0,$FFF
- Hide On
- Screen Open 0,320,200,32,Lowres
- Cls 0 : Paper 0 : Pen 1 : Curs Off : Flash Off : Cls
- ' now setup palette
- For N=1 To 15
- SH=$110*N
- Colour N,SH
- Colour 30-N,SH
- Next N
- Shift Up 1,1,29,1
- X=Rnd(320) : Y=Rnd(200)
- MULTI_LINE[X,Y,X+1,Y+1,1,29]
- Repeat
- NX=Rnd(320) : NY=Rnd(200)
- MULTI_LINE[X,Y,NX,NY,Param,29]
- X=NX : Y=NY
- Until Inkey$<>""
- '
- Cls 0 : Clear Key
- Do
- Repeat
- X1=Rnd(320) : X2=Rnd(320)
- Y1=Rnd(200) : Y2=Rnd(200)
- T=Min(Y1,Y2) : B=Max(Y1,Y2)
- L=Min(X1,X2) : R=Max(X1,X2)
- Until(T<>B) and(R<>L)
- Do
- MULTI_LINE[L,T,R,T,Param,29]
- Inc T : Exit If T=B
- MULTI_LINE[R,T,R,B,Param,29]
- Dec R : Exit If R=L
- MULTI_LINE[R,B,L,B,Param,29]
- Dec B : Exit If T=B
- MULTI_LINE[L,B,L,T,Param,29]
- Inc L : Exit If R=L
- Loop
- Loop
- '
- Procedure MULTI_LINE[XS,YS,XF,YF,NUM,LIM]
- 'Modified by Andrew Church: colours start over at NUM instead of 1
- 'draws a multi-coloured line from colour 1 to LIM
- CNT=Max(Abs(XS-XF),Abs(YS-YF))
- X#=XS : Y#=YS
- DX#=(XF-XS)*1.0/CNT : DY#=(YF-YS)*1.0/CNT
- Repeat
- Dec CNT
- Inc NUM : If NUM=>LIM Then NUM=1
- Plot X#,Y#,NUM
- X#=X#+DX#
- Y#=Y#+DY#
- Until CNT=0
- End Proc[NUM]