Class Metasprites
- Namespace
- GB
- Assembly
- GBSharp.Framework.dll
Drawing an animated hardware sprite made of several sub-sprites, from a
[Metasprite] asset.
public static class Metasprites
- Inheritance
-
Metasprites
- Inherited Members
Remarks
Thin wrappers over GBDK's own move_metasprite_ex family
(gb/metasprites.h). Which hardware sprites and which tiles a frame
uses are arguments on every call, never implicit state this class keeps
for you.
Methods
HideRange(byte, byte)
Hides hardware sprites from up to (not including)
to.
[Native("hide_sprites_range")]
public static void HideRange(byte from, byte to)
Parameters
Remarks
Frames vary in how many sub-sprites they need. After moving to a new frame, hide from its Move(MetaspriteAsset, byte, byte, byte, byte, byte) return value up to the previous frame's, or the sprites that frame is no longer using stay on screen.
Load(MetaspriteAsset)
Uploads a sheet's tiles and, on Game Boy Color, its palettes.
[Native("gbs_metasprite_load")]
public static void Load(MetaspriteAsset sheet)
Parameters
sheetMetaspriteAsset
Move(MetaspriteAsset, byte, byte, byte, byte, byte)
Moves one frame of a metasprite to the absolute position x, y.
[Native("gbs_metasprite_move")]
public static byte Move(MetaspriteAsset sheet, byte frame, byte baseTile, byte baseSprite, byte x, byte y)
Parameters
sheetMetaspriteAssetThe converted sheet, already loaded with Load(MetaspriteAsset).
framebyteWhich frame to draw, in the order the sheet's frames were declared.
baseTilebyteThe first tile this frame's sub-sprites were uploaded to.
baseSpritebyteThe first hardware sprite to use; the frame uses as many as it needs from there.
xbyteAbsolute screen X of the frame's origin, in pixels.
ybyteAbsolute screen Y of the frame's origin, in pixels.
Returns
- byte
How many hardware sprites this frame used.
Remarks
Different frames of the same metasprite can use different numbers of sub-sprites. When switching frames, hide the ones the previous frame used and this one did not - HideRange(byte, byte) from this frame's return value onward, before drawing the new one, does that.
MoveFlippedX(MetaspriteAsset, byte, byte, byte, byte, byte)
Same as Move(MetaspriteAsset, byte, byte, byte, byte, byte), mirrored horizontally.
[Native("gbs_metasprite_move_flip_x")]
public static byte MoveFlippedX(MetaspriteAsset sheet, byte frame, byte baseTile, byte baseSprite, byte x, byte y)
Parameters
Returns
MoveFlippedXy(MetaspriteAsset, byte, byte, byte, byte, byte)
Same as Move(MetaspriteAsset, byte, byte, byte, byte, byte), mirrored both ways.
[Native("gbs_metasprite_move_flip_xy")]
public static byte MoveFlippedXy(MetaspriteAsset sheet, byte frame, byte baseTile, byte baseSprite, byte x, byte y)
Parameters
Returns
MoveFlippedY(MetaspriteAsset, byte, byte, byte, byte, byte)
Same as Move(MetaspriteAsset, byte, byte, byte, byte, byte), mirrored vertically.
[Native("gbs_metasprite_move_flip_y")]
public static byte MoveFlippedY(MetaspriteAsset sheet, byte frame, byte baseTile, byte baseSprite, byte x, byte y)