ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
载入中...
搜索中...
未找到
SpriteSheet类 参考final

精灵图集(sprite-sheet)网格切割器 更多...

#include <SpriteSheet.h>

Public 成员函数

 SpriteSheet (int rows, int cols, float frameWidth, float frameHeight, float margin=0.0f, float spacing=0.0f)
 构造网格切割参数
 ~SpriteSheet ()=default
 SpriteSheet (const SpriteSheet &)=default
SpriteSheetoperator= (const SpriteSheet &)=default
 SpriteSheet (SpriteSheet &&) noexcept=default
SpriteSheetoperator= (SpriteSheet &&) noexcept=default
SDL_FRect getFrameRect (int frameIndex) const
 全局帧索引(0..rows*cols-1)对应的源矩形
SDL_FRect getFrameRect (int row, int col) const
 指定行列(0 基)对应的源矩形
int getRows () const
int getCols () const
float getFrameWidth () const
float getFrameHeight () const
float getMargin () const
float getSpacing () const
int getFrameCount () const
void setRows (int rows)
void setCols (int cols)
void setFrameWidth (float width)
void setFrameHeight (float height)
void setMargin (float margin)
void setSpacing (float spacing)

详细描述

精灵图集(sprite-sheet)网格切割器

把一张按“rows 行 × cols 列”规则排列的大图,按帧索引切出每一帧的源矩形 (SDL_FRect)。 可选 margin(图集四周留白)与 spacing(帧间间隔),单位为像素。

典型用法: Shit::SpriteSheet sheet(4, 8, 32, 32); // 4行8列,每帧32×32 SDL_FRect f = sheet.getFrameRect(5); // 全局第5帧 std::vector<int> walk{0,1,2,3,4,5}; animComp->play("walk", &sheet, walk, 0.1f, true);

构造及析构函数说明

◆ SpriteSheet() [1/3]

SpriteSheet ( int rows,
int cols,
float frameWidth,
float frameHeight,
float margin = 0.0f,
float spacing = 0.0f )

构造网格切割参数

参数
rows行数
cols列数
frameWidth单帧宽(像素)
frameHeight单帧高(像素)
margin图集左上角留白(像素,默认 0)
spacing帧与帧之间的间隔(像素,默认 0)

◆ ~SpriteSheet()

~SpriteSheet ( )
default

◆ SpriteSheet() [2/3]

SpriteSheet ( const SpriteSheet & )
default

◆ SpriteSheet() [3/3]

SpriteSheet ( SpriteSheet && )
defaultnoexcept

成员函数说明

◆ getCols()

int getCols ( ) const
inline

◆ getFrameCount()

int getFrameCount ( ) const
inline

◆ getFrameHeight()

float getFrameHeight ( ) const
inline

◆ getFrameRect() [1/2]

SDL_FRect getFrameRect ( int frameIndex) const

全局帧索引(0..rows*cols-1)对应的源矩形

◆ getFrameRect() [2/2]

SDL_FRect getFrameRect ( int row,
int col ) const

指定行列(0 基)对应的源矩形

◆ getFrameWidth()

float getFrameWidth ( ) const
inline

◆ getMargin()

float getMargin ( ) const
inline

◆ getRows()

int getRows ( ) const
inline

◆ getSpacing()

float getSpacing ( ) const
inline

◆ operator=() [1/2]

SpriteSheet & operator= ( const SpriteSheet & )
default

◆ operator=() [2/2]

SpriteSheet & operator= ( SpriteSheet && )
defaultnoexcept

◆ setCols()

void setCols ( int cols)
inline

◆ setFrameHeight()

void setFrameHeight ( float height)
inline

◆ setFrameWidth()

void setFrameWidth ( float width)
inline

◆ setMargin()

void setMargin ( float margin)
inline

◆ setRows()

void setRows ( int rows)
inline

◆ setSpacing()

void setSpacing ( float spacing)
inline

该类的文档由以下文件生成: