BASIC

Author Topic: TileSprite  (Read 2262 times)

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10656
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
TileSprite
« 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
« Last Edit: 2010-Mar-22 by Kitty Hello »