home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format 67
/
af067a.adf
/
SYSTEM.DMS
/
SYSTEM.adf
/
Examples
/
VirtualSprites.AMOS
/
VirtualSprites.amosSourceCode
Wrap
AMOS Source Code
|
1994-09-08
|
2KB
|
85 lines
Rem *** Virtual Sprites Demonstration
Rem *** By Jason Holborn
Rem *** Taken from the book 'ULTIMATE AMOS'
Rem *** Available from Future Publishing on 0225 442244
FRAME=1 : FRAMEDELAY=0
NUMROWS=7 : Rem *** Number of rows of sprites
SPEED=2 : Rem *** Speed of sprite movement
POSITION=0 : Rem *** Number of movement steps counter
DROPOFFSET=0 : Rem *** Y offset of all sprites
DROPRATE=10 : Rem *** How far the sprites drop down the screen
Screen Open 0,320,256,16,Lowres
Flash Off : Curs Off : Cls 0
Load "AMOSBOOK:ABKFiles/SpaceInvader.ABK"
Get Sprite Palette
Sprite Update Off
Rem *** Set up colour palette of all sprites
For C=0 To 3
Colour 17+(C*4),$F00
Colour 18+(C*4),$F
Colour 19+(C*4),$FF0
Next C
Rem *** Turn off mouse pointer!
Hide
Rem *** Initialise Positions of 56 virtual sprites
Dim INVADER(NUMROWS*8,2)
INVADERNUM=0
For B=0 To NUMROWS-1
For C=0 To 7
INVADER(INVADERNUM,0)=C*25
INVADER(INVADERNUM,1)=B*20
INVADERNUM=INVADERNUM+1
Next C
Next B
Repeat
Rem *** Move all virtual sprites
For ROW=0 To NUMROWS-1
OFFSET=ROW*8
For C=0 To 7
INVADER(C+OFFSET,0)=INVADER(C+OFFSET,0)+SPEED
X=X Hard(INVADER(C+OFFSET,0))
Y=Y Hard(INVADER(C+OFFSET,1)+DROPOFFSET)
Sprite C+OFFSET+8,X,Y,FRAME
Next C
Next ROW
Rem *** Reverse direction of aliens if they
Rem *** reach edge of screen
POSITION=POSITION+SPEED
If POSITION>130 or POSITION<-130
SPEED=-SPEED
POSITION=0
DROPOFFSET=DROPOFFSET+DROPRATE
If DROPOFFSET>114
DROPOFFSET=0
End If
End If
Rem *** Update animation frame number
If FRAMEDELAY=5
FRAME=FRAME+1
If FRAME=3
FRAME=1
End If
FRAMEDELAY=0
End If
FRAMEDELAY=FRAMEDELAY+1
Rem *** Draw all virtual sprites now
Sprite Update
Rem *** Wait for vertical blank before proceeding
Wait Vbl
Until Inkey$<>""