GLBasic forum

Codesnippets => 2D-snippets => Topic started by: Kitty Hello on 2009-Oct-09

Title: TileSprite
Post by: Kitty Hello on 2009-Oct-09
This is the tilesprite function of BB. It only works with n^2 x m^2 sprites, though.
Code: (glbasic) [Select]

DRAWRECT 0,0,63,31, RGB(128,255,255)
PRINT "foo", 0,0

GRABSPRITE 0, 0,0,64,32


LOCAL mx, my, b1, b2
WHILE TRUE
MOUSESTATE mx, my, b1, b2
TileSprite(0, mx, my)

DRAWSPRITE 0,0,0
SHOWSCREEN
WEND


FUNCTION TileSprite%: id%, dx%, dy%, scx%=0, scy%=0
LOCAL spx%, spy%
GETSPRITESIZE id%, spx%, spy%
IF scx<=0 OR scy<=0 THEN GETSCREENSIZE scx%, scy%



LOCAL w%, h%, c%
w = (scx / spx ) * spx
h = (scy / spy ) * spy

c% = RGB(255,255,255)
DEC dx, spx
DEC dy, spy
STARTPOLY id, FALSE
POLYVECTOR 0,     0, dx,     dy,     c%
POLYVECTOR 0,   scy, dx,     dy+scy, c%
POLYVECTOR scx, scy, dx+scx, dy+scy, c%
POLYVECTOR scx,   0, dx+scx, dy,     c%
ENDPOLY
ENDFUNCTION



Tags: Tileblock, blitz