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