Example 1:TI_SPRITEASCII,COLOR,XVEL,YVEL,SIZE
` Test TI_SpriteASCII,Color,Xvel,Yvel,Size - Check sprite properties
call_screen(16)
call_char(36,"ff" + rpt$("80",14) + "ffff" + rpt$("01",14) + "ff") ` sprite image definition for secondary sprites
randomize timer()
A = RND(10) + 5 ` select random vertical velocity of secondary sprites
CALL_SPRITE(1,36,rnd(12)+2,96,128,rnd(100)-RND(100),rnd(100)-rnd(100)) : ` sets main sprite in horizontal and vertical motion
call_sprite(2,36,rnd(12) + 2,8,150,A,0) : call_sprite(3,36,rnd(12) + 2,72,150,A,0) : call_sprite(4,36,rnd(12) + 2,136,150,A,0) : call_sprite(5,36,rnd(12)+ 2,200,150,A,0) ` sets secondary sprites in vertical motion only
tiwait(50)
do ` Main program loop
display_at(1,1,"ASCII:" + str$(mob(1).origmobascii)+ ":" + chr$(mob(1).origmobascii),0)
display_at(2,1,"SPR ASCII:" + str$(TI_SPRITEASCII(1))+ ":" + chr$(TI_SPRITEASCII(1)),0)
display_at(5,1,"COLOR:" + str$(TI_SPRITECOLOR(1)),0)
display_at(6,1,"X-VEL:" + str$(TI_SPRITEXVEL(1)),0)
display_at(7,1,"Y-VEL:" + str$(TI_SPRITEYVEL(1)),0)
display_at(8,1,"SIZE:" + str$(TI_SPRITESIZE(1)),0)
posx = call_positionx(1) ` check main sprite's current x position
posy = call_positiony(1) ` check main sprite's current y position
display_at(3,1,"X:" + str$(posx),0)
display_at(4,1,"Y:" + str$(posy),0)
repeat
k = call_key(0,k,s) ` keeps all sprites in motion while waiting for key press,
coinc = call_coincall() ` check for collision between test sprite and the other sprites
if coinc
display_at(9,1,"**COLLISION**",0) ` display message and change screen color when main and secondary sprites collide
call_screen(15)
tiwait(750)
display_at(9,1,"",0)
call_screen(16)
ENDIF
ti_sync()
until tikeystatus = 1 ` when any key is pressed...
call_locate(1,rnd(128)+32,rnd(192)+32) ` changes location of sprite
call_motion(1,rnd(100)-rnd(100), rnd(100)-rnd(100)) ` changes sprite velocity
call_colorsprite(1,rnd(12)+2) ` changes sprite color
call_pattern(1,rnd(93)+33) ` changes sprite pattern to an image of a random ascii character
call_magnify(rnd(3)+1) ` changes size of all sprites
loop
Example 2:TI_SPRITEEXIST
` This program displays a number of moving sprites and then magnifies and deletes them randomly
randomize hitimer()
numsprites = 20
call_screen(2)
for i=1 to numsprites
repeat
cl = rnd(14)+2
until cl <> 8
call_sprite(i,42,cl,rnd(255)+1,rnd(255)+1,rnd(10)-5,rnd(10)-5)
next i
repeat
tiwait(500)
repeat
a = rnd(numsprites) + 1
until a <= numsprites
if TI_SPRITEEXIST(a)
call_magnifysprite(a,2)
call_colorsprite(a,16)
tiwait(3000)
call_delsprite(a)
endif
until TIE_Activesprites = 0
Example 3:TI_SPRITEXDIR, TI_SPRITEXDIR, TI_SPRITEMULTICOLOR
` Test functions TI_SpriteXDir, TI_SpriteYDir, TI_SpriteMulticolor
call_magnify(2)
a$ = "0055550009C99C9009999990000990009EEEEEE9000EE00000FEEF000FF00FF"
a$ = a$ + rpt$("0",256 - fast len(a$))
call_multicolorchar(128,a$)
do
call_sprite(1,42,2,rnd(192),rnd(256),rnd(50) - 20, rnd(50) - 20)
call_sprite(2,128,0,rnd(192),rnd(256),rnd(50) - 20, rnd(50) - 20)
display_at(12,1,"TI_SpriteMulticolor(1):" + str$(TI_SpriteMulticolor(1)),0)
display_at(13,1,"TI_SpriteXDir(1):" + str$(TI_SpriteXDir(1)),0)
display_at(14,1,"TI_SpriteYDir(1):" + str$(TI_SpriteYDir(1)),0)
display_at(16,1,"TI_SpriteMulticolor(2):" + str$(TI_SpriteMulticolor(2)),0)
display_at(17,1,"TI_SpriteXDir(2):" + str$(TI_SpriteXDir(2)),0)
display_at(18,1,"TI_SpriteYDir(2):" + str$(TI_SpriteYDir(2)),0)
display_at(24,1,"Press any key to restart",0)
tiwaitkey()
loop