home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1991-08-01 | 2.6 KB | 118 lines |
- '***********************************************************
- '* Starfield using computed sprites *
- '* By Gary Fearn 23/8/90 *
- '* *
- '* Use the Joystick in port 2 to move ship *
- '* The Space bar and the "/" key change speed (aka Elite) *
- '* To quit press joystick button *
- '* *
- '***********************************************************
- '
- Curs Off : Cls 0 : Flash Off : Hide
- Sprite Update Off
- STARNUM=20 : STARFLAG=2 : XPOS=320
- Dim COUNT(STARNUM-1),X(STARNUM-1),Y(STARNUM-1)
- For A=0 To STARNUM-1
- Read COUNT(A),X(A),Y(A)
- Next A
- Plot 50,50,2 : Rem Activate any of these for different effects
- 'Circle 58,58,6
- 'Circle 58,58,3 : Paint 59,59
- 'Box 50,50 To 54,54
- Get Sprite 0,5,50,50 To 65,65
- INIT_SPRITES
- Cls 0
- For A=0 To STARNUM-1
- Sprite A+8,X Hard(0,X(A)),Y Hard(0,Y(A)),5
- Next
- Sprite Update
- '
- MAIN:
- Do
- A$=Inkey$
- If A$=" " Then Inc STARFLAG
- If A$="/" Then Dec STARFLAG
- If Jleft(1)=True Then Gosub LEFTROUTINE
- If Jright(1)=True Then Gosub RIGHTROUTINE
- If Jup(1)=True Then Gosub UPROUTINE
- If Jdown(1)=True Then Gosub BACKROUTINE
- If Fire(1)=True Then Exit
- Loop
- Fade 10 : Wait 140
- Edit
- '
- UPROUTINE:
- For A=0 To STARNUM-1
- Add Y(A),-COUNT(A)*STARFLAG
- If Y(A)=>200 Then Y(A)=0
- Sprite A+8,X Hard(0,X(A)),Y Hard(0,Y(A)),5
- Next
- If CURBOB<>1 Then Bob 1,160,100,1
- CURBOB=1
- Sprite Update
- Return
- '
- BACKROUTINE:
- For A=0 To STARNUM-1
- Add Y(A),COUNT(A)*STARFLAG
- If Y(A)=<0 Then Y(A)=200
- Sprite A+8,X Hard(0,X(A)),Y Hard(0,Y(A)),5
- Next
- If CURBOB<>2 Then Bob 1,160,100,2
- CURBOB=2
- Sprite Update
- Return
- '
- RIGHTROUTINE:
- For A=0 To STARNUM-1
- Add X(A),COUNT(A)*STARFLAG
- If X(A)=<0 Then X(A)=320
- Sprite A+8,X Hard(0,X(A)),Y Hard(0,Y(A)),5
- Next
- If CURBOB<>3 Then Bob 1,160,100,3
- CURBOB=3
- Sprite Update
- Return
- '
- LEFTROUTINE:
- For A=0 To STARNUM-1
- Add X(A),-COUNT(A)*STARFLAG
- If X(A)=>320 Then X(A)=0
- Sprite A+8,X Hard(0,X(A)),Y Hard(0,Y(A)),5
- Next
- If CURBOB<>4 Then Bob 1,160,100,4
- CURBOB=4
- Sprite Update
- Return
- '
- ' increment,Xval,Yval
- STARDAT:
- Data -1,3,10
- Data -2,10,40
- Data -2,11,130
- Data -6,45,199
- Data -3,23,20
- Data -4,140,56
- Data -3,260,176
- Data -4,170,87
- Data -3,80,69
- Data -6,290,120
- Data -5,20,180
- Data -2,300,150
- Data -5,73,120
- Data -3,160,176
- Data -4,70,127
- Data -3,280,169
- Data -6,310,190
- Data -5,120,180
- Data -2,300,150
- Data -5,173,120
- '
- Procedure INIT_SPRITES
- Get Sprite Palette
- For S=0 To 3
- For C=0 To 2
- Colour S*4+C+17,$FFF
- Next C
- Next S
- End Proc