Author Topic: TileSprite  (Read 3098 times)

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10745
  • 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 »