MXVK Vulkan Framework
0.24.0
C++20 Vulkan rendering framework for practical 2D and 3D application development with SDL3.
Loading...
Searching...
No Matches
defender_entities.hpp
Go to the documentation of this file.
1
#ifndef DEFENDER_ENTITIES_HPP
2
#define DEFENDER_ENTITIES_HPP
3
4
#include "
defender_types.hpp
"
5
6
#include <cstddef>
7
8
#include <glm/glm.hpp>
9
10
namespace
defender
{
11
12
enum class
GameMode
{
13
Intro
,
14
IntroFadeIn
,
15
Countdown
,
16
Playing
17
};
18
19
enum class
UfoSpriteSet
: std::size_t {
20
Classic
= 0,
21
Ufox
= 1,
22
Alien
= 2
23
};
24
25
struct
Ufo
{
26
glm::vec3
position
{0.0f};
27
glm::vec3
velocity
{0.0f};
28
glm::vec4
tint
{1.0f};
29
float
base_size
= 1.3f;
30
float
phase
= 0.0f;
31
float
bob_speed
= 1.0f;
32
float
spin_speed
= 1.0f;
33
float
respawn_timer
= 0.0f;
34
UfoSpriteSet
sprite_set
=
UfoSpriteSet::Classic
;
35
bool
active
=
true
;
36
};
37
38
struct
Asteroid
{
39
glm::vec3
position
{0.0f};
40
glm::vec3
velocity
{0.0f};
41
glm::vec3
rotation
{0.0f};
42
glm::vec3
angular_velocity
{0.0f};
43
float
scale
= 1.0f;
44
float
collision_radius
= 1.2f;
45
float
respawn_timer
= 0.0f;
46
bool
active
=
false
;
47
};
48
49
struct
SpriteAlphaBounds
{
50
float
min_x
= -0.5f;
51
float
max_x
= 0.5f;
52
float
min_y
= -0.5f;
53
float
max_y
= 0.5f;
54
};
55
56
}
// namespace defender
57
58
#endif
defender_types.hpp
defender
Definition
defender_assets.cpp:16
defender::GameMode
GameMode
Definition
defender_entities.hpp:12
defender::GameMode::Intro
@ Intro
Definition
defender_entities.hpp:13
defender::GameMode::IntroFadeIn
@ IntroFadeIn
Definition
defender_entities.hpp:14
defender::GameMode::Playing
@ Playing
Definition
defender_entities.hpp:16
defender::GameMode::Countdown
@ Countdown
Definition
defender_entities.hpp:15
defender::UfoSpriteSet
UfoSpriteSet
Definition
defender_entities.hpp:19
defender::UfoSpriteSet::Alien
@ Alien
Definition
defender_entities.hpp:22
defender::UfoSpriteSet::Ufox
@ Ufox
Definition
defender_entities.hpp:21
defender::UfoSpriteSet::Classic
@ Classic
Definition
defender_entities.hpp:20
defender::Asteroid
Definition
defender_entities.hpp:38
defender::Asteroid::velocity
glm::vec3 velocity
Definition
defender_entities.hpp:40
defender::Asteroid::scale
float scale
Definition
defender_entities.hpp:43
defender::Asteroid::rotation
glm::vec3 rotation
Definition
defender_entities.hpp:41
defender::Asteroid::collision_radius
float collision_radius
Definition
defender_entities.hpp:44
defender::Asteroid::angular_velocity
glm::vec3 angular_velocity
Definition
defender_entities.hpp:42
defender::Asteroid::active
bool active
Definition
defender_entities.hpp:46
defender::Asteroid::respawn_timer
float respawn_timer
Definition
defender_entities.hpp:45
defender::Asteroid::position
glm::vec3 position
Definition
defender_entities.hpp:39
defender::SpriteAlphaBounds
Definition
defender_entities.hpp:49
defender::SpriteAlphaBounds::max_y
float max_y
Definition
defender_entities.hpp:53
defender::SpriteAlphaBounds::min_y
float min_y
Definition
defender_entities.hpp:52
defender::SpriteAlphaBounds::min_x
float min_x
Definition
defender_entities.hpp:50
defender::SpriteAlphaBounds::max_x
float max_x
Definition
defender_entities.hpp:51
defender::Ufo
Definition
defender_entities.hpp:25
defender::Ufo::spin_speed
float spin_speed
Definition
defender_entities.hpp:32
defender::Ufo::bob_speed
float bob_speed
Definition
defender_entities.hpp:31
defender::Ufo::tint
glm::vec4 tint
Definition
defender_entities.hpp:28
defender::Ufo::respawn_timer
float respawn_timer
Definition
defender_entities.hpp:33
defender::Ufo::sprite_set
UfoSpriteSet sprite_set
Definition
defender_entities.hpp:34
defender::Ufo::velocity
glm::vec3 velocity
Definition
defender_entities.hpp:27
defender::Ufo::base_size
float base_size
Definition
defender_entities.hpp:29
defender::Ufo::phase
float phase
Definition
defender_entities.hpp:30
defender::Ufo::position
glm::vec3 position
Definition
defender_entities.hpp:26
defender::Ufo::active
bool active
Definition
defender_entities.hpp:35
examples
defender
defender_entities.hpp
Generated by
1.16.1