home *** CD-ROM | disk | FTP | other *** search
/ Amiga Computing 66 / ac066b.adf / AMOS.DMS / AMOS.adf / amos_3d_demos / Star_Waring.AMOS / Star_Waring.amosSourceCode
AMOS Source Code  |  1991-07-30  |  2KB  |  105 lines

  1. '
  2. '                       Super polygon demo   
  3. '
  4. '                        By Richard Lewis    
  5. '  
  6. '           (c) Copyright Europress / VooDoo Software 1991 
  7. '
  8. '
  9.  Extension_4_04D6 ":AMOS_3D_demos/objects"
  10. MX_STARS=6
  11. Dim STARNUM(MX_STARS)
  12. Dim VX(MX_STARS)
  13. Dim VY(MX_STARS)
  14. Dim VZ(MX_STARS)
  15. Screen Open 1,512+320,100,8,Lowres
  16. Load Iff ":AMOS_3D_demos/scrollpic.iff",1
  17. Hide On 
  18. Screen Hide 1
  19. Screen 0
  20. Screen Display 0,,,320,140
  21. RemScreen Display 1,,160,320,100 
  22.  Extension_4_0054 150
  23.  Extension_4_0016 "polygons"
  24. RemTd Object 1,"polygons",0,0,1200,0,0,0 
  25. Get Palette 1
  26. Flash Off 
  27. Flash 8,"(f10,1)(f30,1)(f50,1)(f70,1)(f90,1)(fb0,1)(fe0,1)(ff0,1)"
  28. Flash 9,"(f80,1)(f90,1)(fa0,1)(fb0,1)(fc0,1)(fd0,1)(fe0,1)(ff0,1)"
  29. Curs Off 
  30. Paper 7
  31. Ink 0
  32. Double Buffer 
  33. Autoback 0
  34. X Mouse=300
  35. NSTARS=0
  36. Repeat 
  37.     Extension_4_053C 
  38.    STARS
  39.    DX=X Mouse-300
  40.    X Mouse=300
  41.    DB=DB+DX*20
  42.    If DB>0
  43.       DB=DB*0.9
  44.       If DB<0 : DB=0 : End If 
  45.    Else 
  46.       If DB<0
  47.          DB=DB*0.9
  48.          If DB>0 : DB=0 : End If 
  49.       End If 
  50.    End If 
  51.     Extension_4_018C 0,0,DB,0
  52.    BVIEW= Extension_4_01D0(0)
  53.    BACKX=BVIEW/128
  54.     Extension_4_0318 
  55.     Extension_4_049E 1,BACKX,0,320,100 To 0,50
  56.    Screen Swap 
  57.    Wait Vbl 
  58. Until False
  59. Procedure STARS
  60.    Shared NSTARS,STARNUM(),MX_STARS,KEYDOWN,VX(),VY(),VZ()
  61.    Rem
  62.    N=1
  63.    While N<=MX_STARS
  64.       If STARNUM(N)=1
  65.          If Extension_4_007E(0,N)>20000
  66.             DESTROYSTAR[N]
  67.          Else 
  68.              Extension_4_00D4 N,VX(N),VY(N),VZ(N)
  69.              Extension_4_018C N,0,1551,2000
  70.          End If 
  71.       End If 
  72.       Inc N
  73.    Wend 
  74.    If Mouse Key=1
  75.       If KEYDOWN=0 : NEWSTAR : KEYDOWN=1 : End If 
  76.    Else 
  77.       KEYDOWN=0
  78.    End If 
  79. End Proc
  80. Procedure NEWSTAR
  81.    Shared NSTARS,STARNUM(),MX_STARS,N,BVIEW,VX(),VY(),VZ()
  82.    N=1
  83.    NEW=0
  84.    While N<=MX_STARS
  85.       If STARNUM(N)=0 : If NEW=0 : NEW=N : End If : End If 
  86.       Inc N
  87.    Wend 
  88.    If NEW>0
  89.       VX(NEW)= Extension_4_03BA(0,0,0,400)
  90.       VY(NEW)= Extension_4_03C8 
  91.       VZ(NEW)= Extension_4_03E8 
  92.       Rem We've found a gap !
  93.        Extension_4_0036 NEW,"polygons",2*VX(NEW),2*VY(NEW),2*VZ(NEW),Rnd(16000),BVIEW,0
  94.       STARNUM(NEW)=1
  95.       Inc NSTARS
  96.    End If 
  97. End Proc
  98. Rem
  99. Procedure DESTROYSTAR[N]
  100.    Shared NSTARS,STARNUM()
  101.    Rem
  102.     Extension_4_0090 N
  103.    STARNUM(N)=0
  104.    Dec NSTARS
  105. End Proc