JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
AnimationClip.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <map>
7#include <string>
8#include <string_view>
9#include <vector>
10
15
16namespace core {
17
19enum class ClipEndMode {
24};
25
37 std::string name;
39 std::vector<int> frames;
41 float frameDuration = 0.0f;
46 std::string nextClip;
47};
48
61class ClipSet {
62public:
64 void addClip(AnimationClip clip);
65
67 [[nodiscard]] int indexOf(std::string_view name) const noexcept;
68
70 [[nodiscard]] int clipCount() const noexcept {
71 return static_cast<int>(_clips.size());
72 }
73
84 [[nodiscard]] const AnimationClip& clipAt(int index) const noexcept;
85
86private:
87 std::vector<AnimationClip> _clips;
88 // Nom -> index dans _clips. std::less<> (comparateur transparent) : indexOf() compare sans
89 // construire de std::string temporaire a partir du string_view recu.
90 std::map<std::string, int, std::less<>> _byName;
91};
92
93} // namespace core
Ensemble nommé de clips, adressable par nom — l'unité que décrit un fichier nom-asset....
Definition AnimationClip.h:61
void addClip(AnimationClip clip)
Ajoute un clip au jeu. Un clip du même nom qu'un clip déjà présent le remplace.
Definition AnimationClip.cpp:24
const AnimationClip & clipAt(int index) const noexcept
Clip à un index donné, borné aux clips existants.
Definition AnimationClip.cpp:40
int clipCount() const noexcept
Definition AnimationClip.h:70
int indexOf(std::string_view name) const noexcept
Definition AnimationClip.cpp:35
std::vector< AnimationClip > _clips
Definition AnimationClip.h:87
std::map< std::string, int, std::less<> > _byName
Definition AnimationClip.h:90
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
ClipEndMode
Manière dont un clip se termine à la dernière image.
Definition AnimationClip.h:19
@ Loop
Revient à la première image et continue (comportement historique, EX-REN-012).
Definition AnimationClip.h:21
@ OneShot
S'arrête à la dernière image puis bascule sur AnimationClip::nextClip (LOT-47).
Definition AnimationClip.h:23
Clip d'animation : une suite d'images, une durée par image, une manière de finir.
Definition AnimationClip.h:35
std::string name
Nom du clip, unique au sein d'un ClipSet (ex. « idle », « opening »).
Definition AnimationClip.h:37
std::vector< int > frames
Suite d'indices d'images (dans la spritesheet de l'asset), dans l'ordre de lecture.
Definition AnimationClip.h:39
std::string nextClip
Nom du clip suivant, consulté seulement si endMode == OneShot.
Definition AnimationClip.h:46
float frameDuration
Durée d'une image, en secondes. 0 ou une seule image : jamais animé (pose figée).
Definition AnimationClip.h:41
ClipEndMode endMode
Bouclé, ou joué une fois avec bascule sur nextClip.
Definition AnimationClip.h:43