ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
Toggle main menu visibility
载入中...
搜索中...
未找到
SpriteSheet.h
浏览该文件的文档.
1
#pragma once
2
3
#include "
../Core/Core.h
"
4
#include <SDL3/SDL_rect.h>
5
#include <vector>
6
#include <cstddef>
7
8
namespace
Shit
{
9
22
class
SHIT_API
SpriteSheet
final {
23
public
:
33
SpriteSheet
(
int
rows,
int
cols,
float
frameWidth,
float
frameHeight,
34
float
margin = 0.0f,
float
spacing = 0.0f);
35
36
~SpriteSheet
() =
default
;
37
38
SpriteSheet
(
const
SpriteSheet
&) =
default
;
39
SpriteSheet
&
operator=
(
const
SpriteSheet
&) =
default
;
40
SpriteSheet
(
SpriteSheet
&&) noexcept = default;
41
SpriteSheet
& operator=(
SpriteSheet
&&) noexcept = default;
42
44
SDL_FRect
getFrameRect
(
int
frameIndex) const;
45
47
SDL_FRect
getFrameRect
(
int
row,
int
col) const;
48
49
int
getRows
()
const
{
return
m_rows; }
50
int
getCols
()
const
{
return
m_cols; }
51
float
getFrameWidth
()
const
{
return
m_frameWidth; }
52
float
getFrameHeight
()
const
{
return
m_frameHeight; }
53
float
getMargin
()
const
{
return
m_margin; }
54
float
getSpacing
()
const
{
return
m_spacing; }
55
int
getFrameCount
()
const
{
return
m_rows * m_cols; }
56
57
void
setRows
(
int
rows) { m_rows = rows; }
58
void
setCols
(
int
cols) { m_cols = cols; }
59
void
setFrameWidth
(
float
width) { m_frameWidth = width; }
60
void
setFrameHeight
(
float
height) { m_frameHeight = height; }
61
void
setMargin
(
float
margin) { m_margin = margin; }
62
void
setSpacing
(
float
spacing) { m_spacing = spacing; }
63
64
private
:
65
int
m_rows = 0;
66
int
m_cols = 0;
67
float
m_frameWidth = 0.0f;
68
float
m_frameHeight = 0.0f;
69
float
m_margin = 0.0f;
70
float
m_spacing = 0.0f;
71
};
72
73
}
// namespace Shit
Core.h
SHIT_API
#define SHIT_API
定义
Core.h:12
Shit::SpriteSheet::getFrameCount
int getFrameCount() const
定义
SpriteSheet.h:55
Shit::SpriteSheet::getSpacing
float getSpacing() const
定义
SpriteSheet.h:54
Shit::SpriteSheet::getCols
int getCols() const
定义
SpriteSheet.h:50
Shit::SpriteSheet::setSpacing
void setSpacing(float spacing)
定义
SpriteSheet.h:62
Shit::SpriteSheet::setMargin
void setMargin(float margin)
定义
SpriteSheet.h:61
Shit::SpriteSheet::setRows
void setRows(int rows)
定义
SpriteSheet.h:57
Shit::SpriteSheet::SpriteSheet
SpriteSheet(SpriteSheet &&) noexcept=default
Shit::SpriteSheet::setFrameHeight
void setFrameHeight(float height)
定义
SpriteSheet.h:60
Shit::SpriteSheet::getFrameHeight
float getFrameHeight() const
定义
SpriteSheet.h:52
Shit::SpriteSheet::getFrameWidth
float getFrameWidth() const
定义
SpriteSheet.h:51
Shit::SpriteSheet::operator=
SpriteSheet & operator=(const SpriteSheet &)=default
Shit::SpriteSheet::setCols
void setCols(int cols)
定义
SpriteSheet.h:58
Shit::SpriteSheet::getFrameRect
SDL_FRect getFrameRect(int frameIndex) const
全局帧索引(0..rows*cols-1)对应的源矩形
Shit::SpriteSheet::setFrameWidth
void setFrameWidth(float width)
定义
SpriteSheet.h:59
Shit::SpriteSheet::~SpriteSheet
~SpriteSheet()=default
Shit::SpriteSheet::SpriteSheet
SpriteSheet(const SpriteSheet &)=default
Shit::SpriteSheet::getMargin
float getMargin() const
定义
SpriteSheet.h:53
Shit::SpriteSheet::getRows
int getRows() const
定义
SpriteSheet.h:49
Shit::SpriteSheet::SpriteSheet
SpriteSheet(int rows, int cols, float frameWidth, float frameHeight, float margin=0.0f, float spacing=0.0f)
构造网格切割参数
Shit
定义
AudioPlayer.h:9
ShitEngine
Render
SpriteSheet.h
制作者
1.17.0