载入中...
搜索中...
未找到
SpriteAnim.h
浏览该文件的文档.
1#pragma once
2
3#include <string>
4#include <vector>
5
6namespace eve::graphics {
7class Quad;
8}
9
10namespace eve::animation {
11
12class Animation;
13class SpriteClip;
14class SpriteSheet;
15
24public:
27
28 SpriteAnim(const SpriteAnim &) = delete;
29 SpriteAnim &operator=(const SpriteAnim &) = delete;
30
32 void setSheet(SpriteSheet *sheet);
33 SpriteSheet *getSheet() const { return sheet_; }
34
35 void play(SpriteClip *clip);
36 void stop();
37 void pause();
38 void resume();
39
40 void setSpeed(float speed);
41 float getSpeed() const { return speed_; }
42 void setTime(float seconds);
43 float getTime() const { return time_; }
44 void setLoop(bool loop);
45 bool getLoop() const;
46
47 bool isPlaying() const { return playing_ && !paused_; }
48 bool isPaused() const { return paused_; }
49 bool isFinished() const { return finished_; }
50
51 SpriteClip *getClip() const { return clip_; }
53 int getClipFrame() const { return clipFrame_; }
55 int getSheetFrame() const;
56
58 void bindQuad(graphics::Quad *quad);
59 void unbindQuad();
60 graphics::Quad *getBoundQuad() const { return boundQuad_; }
61
63 void applyToQuad(graphics::Quad *quad) const;
64
69 bool update(float dt);
70
71private:
72 friend class Animation;
73
74 void setOwner(Animation *owner) { owner_ = owner; }
75 Animation *owner() const { return owner_; }
76
77 void refreshFrame();
78 void syncBoundQuad();
79
80 Animation *owner_ = nullptr;
81 SpriteSheet *sheet_ = nullptr;
82 SpriteClip *clip_ = nullptr;
83 graphics::Quad *boundQuad_ = nullptr;
84 float speed_ = 1.f;
85 float time_ = 0.f;
86 int clipFrame_ = -1;
87 bool playing_ = false;
88 bool paused_ = false;
89 bool finished_ = false;
90 bool loopOverride_ = false;
91 bool loopValue_ = true;
92};
93
94} // namespace eve::animation
Animation module — tween factory + 2D sprite-sheet / Spine + 3D skeletal playback (player / state mac...
Definition Animation.h:53
2D sprite-sheet clip player.
Definition SpriteAnim.h:23
SpriteSheet * getSheet() const
Definition SpriteAnim.h:33
void bindQuad(graphics::Quad *quad)
Keep this Quad's viewport updated each update/play.
bool update(float dt)
Advance playback. Returns true while still active (playing or paused). Auto-applies to boundQuad when...
void setTime(float seconds)
void play(SpriteClip *clip)
void setSpeed(float speed)
void setSheet(SpriteSheet *sheet)
Optional sheet used by applyToQuad / bindQuad.
int getClipFrame() const
Index inside the current clip (0..clipFrameCount-1), or -1.
Definition SpriteAnim.h:53
graphics::Quad * getBoundQuad() const
Definition SpriteAnim.h:60
void applyToQuad(graphics::Quad *quad) const
Write current sheet frame into quad (requires sheet).
SpriteAnim & operator=(const SpriteAnim &)=delete
SpriteClip * getClip() const
Definition SpriteAnim.h:51
int getSheetFrame() const
Sheet frame index for the current cell, or -1.
SpriteAnim(const SpriteAnim &)=delete
Named 2D frame sequence referencing SpriteSheet frame indices. Script type: SpriteClip.
Definition SpriteClip.h:14
Sprite-sheet / texture-atlas frame table (pixel rects).
Definition SpriteSheet.h:20
Pixel-space sub-rectangle of a Texture (atlas cell / sprite frame). UV conversion uses the texture's ...
Definition Quad.h:9
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition AnimTrail.h:6