Gamedev Framework (gf)
1.2.0
A C++17 framework for 2D games
include
gf
Animation.h
1
/*
2
* Gamedev Framework (gf)
3
* Copyright (C) 2016-2022 Julien Bernard
4
*
5
* This software is provided 'as-is', without any express or implied
6
* warranty. In no event will the authors be held liable for any damages
7
* arising from the use of this software.
8
*
9
* Permission is granted to anyone to use this software for any purpose,
10
* including commercial applications, and to alter it and redistribute it
11
* freely, subject to the following restrictions:
12
*
13
* 1. The origin of this software must not be misrepresented; you must not
14
* claim that you wrote the original software. If you use this software
15
* in a product, an acknowledgment in the product documentation would be
16
* appreciated but is not required.
17
* 2. Altered source versions must be plainly marked as such, and must not be
18
* misrepresented as being the original software.
19
* 3. This notice may not be removed or altered from any source distribution.
20
*/
21
#ifndef GF_ANIMATION_H
22
#define GF_ANIMATION_H
23
24
#include <cstddef>
25
#include <vector>
26
27
#include "GraphicsApi.h"
28
#include "Rect.h"
29
#include "Time.h"
30
31
namespace
gf
{
32
#ifndef DOXYGEN_SHOULD_SKIP_THIS
33
inline
namespace
v1 {
34
#endif
35
36
class
Texture
;
37
49
class
GF_GRAPHICS_API
Animation
{
50
public
:
54
Animation
();
55
66
void
addFrame
(
const
Texture
& texture,
const
RectF
& bounds,
Time
duration);
67
80
void
addTileset
(
const
Texture
& texture,
Vector2i
layout,
Time
duration,
int
frameCount,
int
frameOffset = 0);
81
87
void
setLoop
(
bool
enabled);
88
95
const
Texture
&
getCurrentTexture
()
const
;
96
103
RectF
getCurrentBounds
()
const
;
104
111
bool
update
(
Time
time);
112
116
void
reset
();
117
121
bool
isFinished
()
const
;
122
123
private
:
124
struct
Frame {
125
const
Texture
*texture;
126
RectF
bounds;
127
Time
duration;
128
};
129
130
std::size_t m_currentFrame;
131
Time
m_currentDurationInFrame;
132
std::vector<Frame> m_frames;
133
bool
m_loop;
134
};
135
136
#ifndef DOXYGEN_SHOULD_SKIP_THIS
137
}
138
#endif
139
}
140
141
#endif
// GF_ANIMATION_H
gf::Animation
An animation.
Definition:
Animation.h:49
gf::Animation::Animation
Animation()
Default constructor.
gf::Animation::addTileset
void addTileset(const Texture &texture, Vector2i layout, Time duration, int frameCount, int frameOffset=0)
Add a entire tileset to the animation.
gf::Animation::getCurrentBounds
RectF getCurrentBounds() const
Get the current texture rectangle.
gf::Animation::update
bool update(Time time)
Update the state of the animation.
gf::Animation::isFinished
bool isFinished() const
Tell if the animation is finished.
gf::Animation::getCurrentTexture
const Texture & getCurrentTexture() const
Get the current texture.
gf::Animation::setLoop
void setLoop(bool enabled)
Enable or disable the animation loop.
gf::Animation::addFrame
void addFrame(const Texture &texture, const RectF &bounds, Time duration)
Add a frame to the animation.
gf::Animation::reset
void reset()
Reset the animation.
gf::Texture
A texture for colored images.
Definition:
Texture.h:313
gf::Time
Represents a time value.
Definition:
Time.h:65
gf::GraphicsTag::Texture
@ Texture
A GPU texture.
gf
The namespace for gf classes.
gf::Rect< float >
gf::Vector< int, 2 >
Generated by
1.9.4