Fission FSN
Loading...
Searching...
No Matches
fsCAnimatingSpritePlayfirst.h
Go to the documentation of this file.
1/********************************************************************
2*
3* Created: 4/4/2012 12:00
4*
5* File: fsCAnimatingSpritePlayfirst.h
6*
7* Author: Martin P King
8*
9* Purpose: Playfirst based animating sprite implementation
10*
11*********************************************************************/
12
13#ifndef fsCAnimatingSpritePlayfirsthdr
14#define fsCAnimatingSpritePlayfirsthdr
15
16#include <vector>
17#include <memory>
18
19
20#include <fsCore/fsBaseTypes.h>
21
23
24class fsCResourceName;
25class fsAffineMtx2d;
26class fsStr;
29class fsCSpriteFrame;
30struct fsPoint;
31
32
34{
36
37 friend class fsIKeyFrame;
39 friend class fsCJumpKeyFrame;
40 friend class fsCSpriteKeyFrame;
42
43public:
44
46
47protected:
48
49 fsCAnimatingSpritePlayfirst(const fsCResourceName& pFileName, fsBool pHitMap, fsCSprite* pAnimatingSpriteRoot);
50 fsCAnimatingSpritePlayfirst(fsCSprite* pAnimatingRootSprt);
51
52 void activeSet(fsBool pVisibility) override;
53
54 void colourApplyToSpriteFrames(const fsSColour4B& pColour) override;
55
56 void animationDataSetDo(std::shared_ptr<fsIAnimationData> pAnimData) override;
57
58 fsS32 currentFrameHeightGetDo() const override;
59 fsPoint currentFramePosGetDo() const override;
60
61 std::shared_ptr<fsCBrush> brushGetDo() const override;
62 fsBool hitTestDo(const fsPoint& pPoint, fsBool pRequireHitMap) const override;
63 // virtual fsBool pixelCollisionCheck( fsISpriteRef pTarget ) override;
64
65 fsS32 currentFrameGetDo() const override;
66
67 void updateDo(fsS32 pDeltaMS) override;
68
69 fsBool loopingGetDo() const override;
70
71 void resetDo() override;
72
73
74 void matrixApplyDo(const fsAffineMtx2d& pRenderMtx) override;
75 void renderDo() override;
76
77private:
78
79 void spriteFramesCreate();
80
81 void currentFrameExecute();
82 void currentTimelineSet(const fsStr& pTimelineName);
83
84 fsBool frameTimeElapsed(fsS32 pDeltaMS);
85
86 void spriteUpdateFromKeyframe(fsS32 pSpriteNum);
87
88 fsS32 mElapsedTimeMS;
89
90 fsS32 mCurrKeyFrame;
91 fsS32 mCurrSpriteFrame;
92 std::shared_ptr<fsCAnimationDataPlayfirst> mAnimData;
93 fsCAnimationTimeline* mCurrentTimeline;
94
95 std::vector<fsCSpriteFrame*> mSpriteFrames;
96};
97
98#endif
Definition fsAffineMtx2d.h:27
void animationDataSetDo(std::shared_ptr< fsIAnimationData > pAnimData) override
Definition fsCAnimatingSpritePlayfirst.cpp:39
void updateDo(fsS32 pDeltaMS) override
Definition fsCAnimatingSpritePlayfirst.cpp:114
void matrixApplyDo(const fsAffineMtx2d &pRenderMtx) override
Definition fsCAnimatingSpritePlayfirst.cpp:79
friend class fsCSpriteKeyFrame
Definition fsCAnimatingSpritePlayfirst.h:40
void activeSet(fsBool pVisibility) override
Definition fsCAnimatingSpritePlayfirst.cpp:23
void resetDo() override
Definition fsCAnimatingSpritePlayfirst.cpp:151
friend class fsCAnimationDataManager
Definition fsCAnimatingSpritePlayfirst.h:35
fsBool loopingGetDo() const override
Definition fsCAnimatingSpritePlayfirst.cpp:146
friend class fsCSwapTimelineKeyFrame
Definition fsCAnimatingSpritePlayfirst.h:41
fsBool hitTestDo(const fsPoint &pPoint, fsBool pRequireHitMap) const override
Definition fsCAnimatingSpritePlayfirst.cpp:64
friend class fsCGotoFrameKeyFrame
Definition fsCAnimatingSpritePlayfirst.h:38
fsCAnimatingSpritePlayfirst(const fsCResourceName &pFileName, fsBool pHitMap, fsCSprite *pAnimatingSpriteRoot)
Definition fsCAnimatingSpritePlayfirst.cpp:190
fsPoint currentFramePosGetDo() const override
Definition fsCAnimatingSpritePlayfirst.cpp:51
fsS32 currentFrameGetDo() const override
Definition fsCAnimatingSpritePlayfirst.cpp:92
friend class fsCJumpKeyFrame
Definition fsCAnimatingSpritePlayfirst.h:39
virtual ~fsCAnimatingSpritePlayfirst()
Definition fsCAnimatingSpritePlayfirst.cpp:219
void colourApplyToSpriteFrames(const fsSColour4B &pColour) override
Definition fsCAnimatingSpritePlayfirst.cpp:31
void renderDo() override
Definition fsCAnimatingSpritePlayfirst.cpp:138
std::shared_ptr< fsCBrush > brushGetDo() const override
Definition fsCAnimatingSpritePlayfirst.cpp:18
friend class fsIKeyFrame
Definition fsCAnimatingSpritePlayfirst.h:37
fsS32 currentFrameHeightGetDo() const override
Definition fsCAnimatingSpritePlayfirst.cpp:46
Definition fsCAnimationDataPlayfirst.h:30
Definition fsCAnimationTimeline.h:25
Definition fsCResourceName.h:32
Definition fsCSpriteFrame.h:29
Definition fsCSprite.h:24
fsIAnimatingSprite(const fsCResourceName &pFileName, fsBool pHitMap, fsCSprite *pAnimatingSpriteRoot)
Definition fsIAnimatingSprite.cpp:83
Definition fsStr.h:23
bool fsBool
Definition fsBaseTypes.h:26
int fsS32
Definition fsBaseTypes.h:20
Definition fsPoint.h:17
Definition fsSColour.h:54