From b25f4349da5f6e1d942cf5660cdd1e3081d489bf Mon Sep 17 00:00:00 2001 From: Nimac0 Date: Fri, 2 May 2025 11:46:58 +0000 Subject: [PATCH] deploy: 70080681e0e0359887466318343cd06681ff8805 --- AnimationHandler_8h_source.html | 38 ++- Animations1.jpg | Bin 0 -> 24933 bytes ColliderComponent_8h_source.html | 2 +- DataComponent_8h_source.html | 44 +-- PickupManager_8h_source.html | 36 +- ProjectileComponent_8h_source.html | 2 +- SpriteComponent_8h_source.html | 47 +-- StatEffectsComponent_8h_source.html | 29 +- TileComponent_8h_source.html | 4 +- Tiled1.jpg | Bin 0 -> 32081 bytes Tiled2.jpg | Bin 0 -> 46210 bytes Tiled3.jpg | Bin 0 -> 62399 bytes Tiled4.jpg | Bin 0 -> 43250 bytes Tiled5.jpg | Bin 0 -> 82338 bytes Tiled6.jpg | Bin 0 -> 37067 bytes TransformComponent_8h_source.html | 47 +-- VEGO_8h_source.html | 8 +- annotated.html | 38 ++- annotated_dup.js | 6 +- classColliderComponent.html | 2 +- classCollisionHandler.js | 3 +- classConfigLoader.html | 2 +- classDataComponent-members.html | 139 ++++++++ classDataComponent.html | 241 ++++++++++++++ classDataComponent.js | 5 + classPickupManager-members.html | 138 ++++++++ classPickupManager.html | 195 +++++++++++ classPickupManager.js | 4 + classSoundManager.js | 14 + classSpriteComponent-members.html | 9 +- classSpriteComponent.html | 96 ++++-- classSpriteComponent.js | 3 +- classStatEffectsComponent-members.html | 138 ++++++++ classStatEffectsComponent.html | 187 +++++++++++ classStatEffectsComponent.js | 4 + classTransformComponent-members.html | 4 +- classTransformComponent.html | 107 +++++- classTransformComponent.js | 4 +- classes.html | 12 +- doxygen_crawl.html | 44 ++- functions.html | 7 +- functions_func.html | 7 +- index.html | 11 +- md_docs_2md-pages_2config.html | 143 ++++++++ md_docs_2md-pages_2entitiesAndComponents.html | 67 ++-- md_docs_2md-pages_2eventhandling.html | 2 +- md_docs_2md-pages_2inputhandling.html | 5 +- md_docs_2md-pages_2quickstart.html | 4 +- md_docs_2md-pages_2tilemaps.html | 93 ++++-- navtreedata.js | 17 +- navtreeindex0.js | 309 ++++++++++-------- pages.html | 15 +- search/all_0.js | 28 +- search/all_1.js | 2 +- search/all_10.js | 27 +- search/all_11.js | 26 +- search/all_12.js | 6 +- search/all_14.js | 4 +- search/all_15.js | 4 +- search/all_2.js | 23 +- search/all_3.js | 13 +- search/all_4.js | 10 +- search/all_6.js | 31 +- search/all_7.js | 3 +- search/all_8.js | 16 +- search/all_a.js | 8 +- search/all_b.js | 3 +- search/all_c.js | 2 +- search/all_d.js | 16 +- search/all_f.js | 19 +- search/classes_0.js | 4 +- search/classes_1.js | 4 +- search/classes_2.js | 5 +- search/classes_3.js | 3 +- search/classes_4.js | 5 +- search/classes_5.js | 5 +- search/classes_6.js | 5 +- search/classes_7.js | 5 +- search/classes_8.js | 6 + search/classes_9.js | 4 + search/functions_0.js | 9 +- search/functions_1.js | 3 +- search/functions_5.js | 11 +- search/functions_a.js | 5 +- search/functions_c.js | 7 +- search/functions_d.js | 2 +- search/pages_0.js | 5 +- search/pages_1.js | 2 +- search/pages_2.js | 3 +- search/pages_4.js | 3 +- search/pages_6.js | 3 +- search/pages_7.js | 3 +- search/pages_8.js | 3 +- search/pages_9.js | 3 +- search/pages_c.js | 13 +- search/pages_d.js | 2 +- search/searchdata.js | 2 +- structAnimation-members.html | 136 ++++++++ structAnimation.html | 155 +++++++++ 99 files changed, 2431 insertions(+), 558 deletions(-) create mode 100644 Animations1.jpg create mode 100644 Tiled1.jpg create mode 100644 Tiled2.jpg create mode 100644 Tiled3.jpg create mode 100644 Tiled4.jpg create mode 100644 Tiled5.jpg create mode 100644 Tiled6.jpg create mode 100644 classDataComponent-members.html create mode 100644 classDataComponent.html create mode 100644 classDataComponent.js create mode 100644 classPickupManager-members.html create mode 100644 classPickupManager.html create mode 100644 classPickupManager.js create mode 100644 classSoundManager.js create mode 100644 classStatEffectsComponent-members.html create mode 100644 classStatEffectsComponent.html create mode 100644 classStatEffectsComponent.js create mode 100644 md_docs_2md-pages_2config.html create mode 100644 search/classes_8.js create mode 100644 search/classes_9.js create mode 100644 structAnimation-members.html create mode 100644 structAnimation.html diff --git a/AnimationHandler_8h_source.html b/AnimationHandler_8h_source.html index 730b400..356fd6e 100644 --- a/AnimationHandler_8h_source.html +++ b/AnimationHandler_8h_source.html @@ -124,24 +124,26 @@ $(function(){initNavTree('AnimationHandler_8h_source.html',''); initResizable(tr
1#pragma once
2#include <cstdint>
-
3struct Animation
-
4{
-
5 uint8_t index;
-
6 uint8_t frames;
-
7 uint8_t speed;
-
8
-
9 Animation() {}
-
10
-
11 Animation(uint8_t index, uint8_t frames, uint8_t speed)
-
12 {
-
13 this->index = index;
-
14 this->frames = frames;
-
15 this->speed = speed;
-
16 }
-
17};
-
18
-
19
-
20
+
+
7struct Animation
+
8{
+
9 uint8_t index;
+
10 uint8_t frames;
+
11 uint8_t speed;
+
12
+
13 Animation() {}
+
14
+
15 Animation(uint8_t index, uint8_t frames, uint8_t speed)
+
16 {
+
17 this->index = index;
+
18 this->frames = frames;
+
19 this->speed = speed;
+
20 }
+
21};
+
+
22
+
23
+
24
diff --git a/Animations1.jpg b/Animations1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3f5d5b6d6a2566be86011ebf9f95207ff57bd403 GIT binary patch literal 24933 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
void removeCollision()
Removes the collision of an entity.
Definition ColliderComponent.cpp:43
bool hasCollision() const
Definition ColliderComponent.h:16
ColliderComponent(const char *tag)
Constructor for ColliderComponent.
Definition ColliderComponent.cpp:9
-
Adds a transform to an entity when added via entity.addComponent()
Definition TransformComponent.h:11
+
The transform component is responsible for the position, direction and size of an entity....
Definition TransformComponent.h:10
diff --git a/DataComponent_8h_source.html b/DataComponent_8h_source.html index 46684a3..ebd734f 100644 --- a/DataComponent_8h_source.html +++ b/DataComponent_8h_source.html @@ -129,25 +129,31 @@ $(function(){initNavTree('DataComponent_8h_source.html',''); initResizable(true)
5#include <string>
6#include <optional>
7#include "Component.h"
-
8
-
9class DataComponent : public Component
-
10{
-
11public:
-
12 DataComponent() {};
-
13 ~DataComponent() {};
-
20 template <typename T>
-
21 void setEntry(const std::string& key, const T& value) { dataMap.insert_or_assign(key, value); }
-
22
-
29 template<typename T>
-
30 std::optional<T> getEntry(std::string key) const {
-
31 if (!this->dataMap.contains(key)) return std::nullopt;
-
32 const std::any& value = this->dataMap.at(key);
-
33 if (value.type() != typeid(T)) { return std::nullopt; }
-
34 return std::any_cast<T>(value);
-
35 }
-
36private:
-
37 std::map<std::string, std::any> dataMap;
-
38};
+
8
+
+
10class DataComponent : public Component
+
11{
+
12public:
+
13 DataComponent() {};
+
14 ~DataComponent() {};
+
21 template <typename T>
+
22 void setEntry(const std::string& key, const T& value) { dataMap.insert_or_assign(key, value); }
+
23
+
30 template<typename T>
+
+
31 std::optional<T> getEntry(std::string key) const {
+
32 if (!this->dataMap.contains(key)) return std::nullopt;
+
33 const std::any& value = this->dataMap.at(key);
+
34 if (value.type() != typeid(T)) { return std::nullopt; }
+
35 return std::any_cast<T>(value);
+
36 }
+
+
37private:
+
38 std::map<std::string, std::any> dataMap;
+
39};
+
+
void setEntry(const std::string &key, const T &value)
Set a key-value pair of any type in the data map.
Definition DataComponent.h:22
+
std::optional< T > getEntry(std::string key) const
Get a value of type T from the data map.
Definition DataComponent.h:31
diff --git a/PickupManager_8h_source.html b/PickupManager_8h_source.html index 2627b17..2698900 100644 --- a/PickupManager_8h_source.html +++ b/PickupManager_8h_source.html @@ -135,22 +135,28 @@ $(function(){initNavTree('PickupManager_8h_source.html',''); initResizable(true)
11class Vector2D;
12class Manager;
13
-
14class PickupManager
-
15{
-
16public:
-
17
-
18 PickupManager(Manager* manager);
-
19 ~PickupManager();
-
20
-
21 void createPowerup(Vector2D pos, std::function<void (Entity*)> pickupFunc, Textures texture);
-
22
-
23 Vector2D calculateSpawnPosition();
-
24
-
25private:
-
26
-
27 Manager* man;
-
28};
+
14
+
+
16class PickupManager
+
17{
+
18public:
+
19
+
20 PickupManager(Manager* manager);
+
21 ~PickupManager();
+
22
+
28 void createPickupable(Vector2D pos, std::function<void (Entity*)> pickupFunc, Textures texture);
+
29
+
30 Vector2D calculateSpawnPosition();
+
31
+
32private:
+
33
+
34 Manager* man;
+
35};
+
+
Main class for any object in game, stores associations, labeling and components.
Definition Entity.h:35
Is responsible for managing all entities.
Definition Manager.h:23
+
void createPickupable(Vector2D pos, std::function< void(Entity *)> pickupFunc, Textures texture)
Creates a pickupable item and adds it to the manager.
Definition PickupManager.cpp:25
+
Forward declaration of the Textures enum class.
diff --git a/ProjectileComponent_8h_source.html b/ProjectileComponent_8h_source.html index a79ba3b..29c75ee 100644 --- a/ProjectileComponent_8h_source.html +++ b/ProjectileComponent_8h_source.html @@ -156,7 +156,7 @@ $(function(){initNavTree('ProjectileComponent_8h_source.html',''); initResizable
32
33 SoundEffects soundEffect;
34};
-
Adds a transform to an entity when added via entity.addComponent()
Definition TransformComponent.h:11
+
The transform component is responsible for the position, direction and size of an entity....
Definition TransformComponent.h:10
diff --git a/SpriteComponent_8h_source.html b/SpriteComponent_8h_source.html index db7d000..223eab8 100644 --- a/SpriteComponent_8h_source.html +++ b/SpriteComponent_8h_source.html @@ -136,7 +136,7 @@ $(function(){initNavTree('SpriteComponent_8h_source.html',''); initResizable(tru
12#include "RenderObject.h"
13
-
16
+
15
17class SpriteComponent : public Component, public RenderObject
18{
@@ -173,28 +173,35 @@ $(function(){initNavTree('SpriteComponent_8h_source.html',''); initResizable(tru
52 SpriteComponent(Textures texture, int zIndex);
53
58 SpriteComponent(Textures texture, int xOffset, int yOffset, int zIndex);
-
63 SpriteComponent(const char* path, int xOffset, int yOffset, int zIndex);
- -
71 Textures texture,
-
72 bool isAnimated,
-
73 std::map<std::string, std::unique_ptr<Animation>>* animationList,
-
74 std::string defaultAnimation,
-
75 int zIndex);
- -
77
-
78 void setTexture(Textures texture);
-
79 void setMapTileTexture(const char* path);
-
80
-
81 void init() override;
-
82 void update(uint_fast16_t diffTime) override;
-
83 void draw() override;
-
84 void playAnimation(std::string type);
-
85 void setDirection(Direction direction);
-
86};
+
59
+
64 SpriteComponent(const char* path, int xOffset, int yOffset, int zIndex);
+
65
+ +
87 Textures texture,
+
88 bool isAnimated,
+
89 std::map<std::string, std::unique_ptr<Animation>>* animationList,
+
90 std::string defaultAnimation,
+
91 int zIndex,
+
92 int xOffset = 0,
+
93 int yOffset = 0);
+
94
+ +
96
+
97 void setTexture(Textures texture);
+
98 void setMapTileTexture(const char* path);
+
99
+
100 void init() override;
+
101 void update(uint_fast16_t diffTime) override;
+
102 void draw() override;
+
103
+
106 void playAnimation(std::string type);
+
107 void setDirection(Direction direction);
+
108};
+
void playAnimation(std::string type)
By name select which animation should be played (gets looped)
Definition SpriteComponent.cpp:101
SpriteComponent(Textures texture, int zIndex)
Constructor for SpriteComponent.
Definition SpriteComponent.cpp:18
Forward declaration of the Textures enum class.
-
Adds a transform to an entity when added via entity.addComponent()
Definition TransformComponent.h:11
+
The transform component is responsible for the position, direction and size of an entity....
Definition TransformComponent.h:10
diff --git a/StatEffectsComponent_8h_source.html b/StatEffectsComponent_8h_source.html index af4417a..6b14a19 100644 --- a/StatEffectsComponent_8h_source.html +++ b/StatEffectsComponent_8h_source.html @@ -136,19 +136,22 @@ $(function(){initNavTree('StatEffectsComponent_8h_source.html',''); initResizabl
14 uint32_t startTime;
15};
-
16
-
17class StatEffectsComponent : public Component{
-
18public:
-
19 StatEffectsComponent() {};
-
20 ~StatEffectsComponent() {};
-
21
-
22 void init() override;
-
23 void update(uint_fast16_t diffTime) override;
-
29 void addEffect(uint32_t duration, std::function<void()> resetFunction);
-
30
-
31private:
-
32 std::vector<StatEffect> effects = {};
-
33};
+
16
+
+
18class StatEffectsComponent : public Component{
+
19public:
+
20 StatEffectsComponent() {};
+
21 ~StatEffectsComponent() {};
+
22
+
23 void init() override;
+
24 void update(uint_fast16_t diffTime) override;
+
30 void addEffect(uint32_t duration, std::function<void()> resetFunction);
+
31
+
32private:
+
33 std::vector<StatEffect> effects = {};
+
34};
+
+
void addEffect(uint32_t duration, std::function< void()> resetFunction)
Add a stat effect to the entity.
Definition StatEffectsComponent.cpp:24
Struct to hold the duration, reset function and start time of a stat effect.
Definition StatEffectsComponent.h:11
std::function< void()> resetFunction
Function to reset the effect, will be called on expiry of duration.
Definition StatEffectsComponent.h:13
uint32_t duration
Duration of the effect in milliseconds.
Definition StatEffectsComponent.h:12
diff --git a/TileComponent_8h_source.html b/TileComponent_8h_source.html index 566baaf..9d17bd7 100644 --- a/TileComponent_8h_source.html +++ b/TileComponent_8h_source.html @@ -158,8 +158,8 @@ $(function(){initNavTree('TileComponent_8h_source.html',''); initResizable(true)
34private:
35 bool collision;
36};
-
SpriteComponent class to handle sprite rendering and animation.
Definition SpriteComponent.h:18
-
Adds a transform to an entity when added via entity.addComponent()
Definition TransformComponent.h:11
+
SpriteComponent class to handle sprite rendering and animation of entities.
Definition SpriteComponent.h:18
+
The transform component is responsible for the position, direction and size of an entity....
Definition TransformComponent.h:10
diff --git a/Tiled1.jpg b/Tiled1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..37acd34f21902431a389237e37d916c07855cbab GIT binary patch literal 32081 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%0DI)@W}X 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 literal 0 HcmV?d00001 diff --git a/Tiled2.jpg b/Tiled2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2fb7754aa635f1301725b44297e2ac9e5aa1eb72 GIT binary patch literal 46210 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 l|8 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 Wl#w1aSu2Bm4LEr6r{RC=|Nj8qsWmhJ literal 0 HcmV?d00001 diff --git a/Tiled4.jpg b/Tiled4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f95a77f8dfbc5bee258356846175cc2afe72f92d GIT binary patch literal 43250 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 F0sy*olnwv@ literal 0 HcmV?d00001 diff --git a/Tiled6.jpg b/Tiled6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..97cb6d8eb0d66545aaf0cb4f85fcf33d0ca498ed GIT binary patch literal 37067 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 rU-Oc7srT2S6CB)d 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 literal 0 HcmV?d00001 diff --git a/TransformComponent_8h_source.html b/TransformComponent_8h_source.html index 43b8d9c..a4bb4c4 100644 --- a/TransformComponent_8h_source.html +++ b/TransformComponent_8h_source.html @@ -129,29 +129,32 @@ $(function(){initNavTree('TransformComponent_8h_source.html',''); initResizable(
5#include "Constants.h"
6#include "DataComponent.h"
7
-
-
10class TransformComponent : public Component
-
11{
-
12public:
-
13 Vector2D position; // TODO: change to int to save CPU time -> possibly subpixel coordinates
-
14 Vector2D direction;
-
15
-
16 int height = 32;
-
17 int width = 32;
-
18 int scale = 1;
-
19
-
21 explicit TransformComponent(int scale = 1);
-
22 TransformComponent(float x, float y, int scale = 1);
-
23 TransformComponent(float x, float y, int w, int h, int scale = 1);
-
24
-
25 void init() override;
-
26 void update(uint_fast16_t diffTime) override;
-
27 void setPositionAfterCollision(Vector2D& positionChange);
-
28 int getSpeed();
-
29
-
30};
+
+
9class TransformComponent : public Component
+
10{
+
11public:
+
12 Vector2D position; // TODO: change to int to save CPU time -> possibly subpixel coordinates
+
13 Vector2D direction;
+
14
+
15 int height = 32;
+
16 int width = 32;
+
17 float scale = 1;
+
18
+
20
+
22 explicit TransformComponent(float scale = 1);
+
23
+
27 TransformComponent(float x, float y, float scale = 1);
+
28
+
34 TransformComponent(float x, float y, int w, int h, float scale = 1);
+
35
+
36 void init() override;
+
37 void update(uint_fast16_t diffTime) override;
+
38 void setPositionAfterCollision(Vector2D& positionChange);
+
39 int getSpeed();
+
40
+
41};
-
TransformComponent(int scale=1)
Definition TransformComponent.cpp:16
+
TransformComponent(float scale=1)
Definition TransformComponent.cpp:16
diff --git a/VEGO_8h_source.html b/VEGO_8h_source.html index 84f8492..2241041 100644 --- a/VEGO_8h_source.html +++ b/VEGO_8h_source.html @@ -127,10 +127,10 @@ $(function(){initNavTree('VEGO_8h_source.html',''); initResizable(true); });
3namespace vego {
4 extern GameInternal* game;
5}
-
6
-
7inline GameInternal& VEGO_Game() {
-
8 return *vego::game;
-
9};
+
6
+
17inline GameInternal& VEGO_Game() {
+
18 return *vego::game;
+
19};
diff --git a/annotated.html b/annotated.html index 7b40688..6ae19b7 100644 --- a/annotated.html +++ b/annotated.html @@ -124,23 +124,27 @@ $(function(){initNavTree('annotated.html',''); initResizable(true); });
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
- - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + +
 CColliderComponentAdds a collision box to an entity when added via entity.addComponent()
 CCollisionHandlerClass responsible for collision detection and handling
 CConfigLoaderEnables configuration of specific engine variables via a custom JSON file
 CEntityMain class for any object in game, stores associations, labeling and components
 CInputManagerInputManager class to handle input events and actions
 CInputActionInputAction struct to represent an action and its bindings
 CInteractionComponentInteractionComponent class to handle interaction events
 CInteractionEventdataStructStruct to hold data for interaction events. This struct is used to pass data to the interaction manager when an interaction event is triggered
 CManagerIs responsible for managing all entities
 CMapClass responsible for the creation and management of the map or background
 CPickupComponentPickupComponent class to handle pickup events
 CSoundManagerHandles music and sound
 CSpriteComponentSpriteComponent class to handle sprite rendering and animation
 CStatEffectStruct to hold the duration, reset function and start time of a stat effect
 CTextureManagerA manager for loading, caching, and drawing textures
 CTexturesForward declaration of the Textures enum class
 CTransformComponentAdds a transform to an entity when added via entity.addComponent()
 CAnimationAnimation struct to hold animation data
 CColliderComponentAdds a collision box to an entity when added via entity.addComponent()
 CCollisionHandlerClass responsible for collision detection and handling
 CConfigLoaderEnables configuration of specific engine variables via a custom JSON file
 CDataComponentDataComponent class to centrally store data about an entity such as stats
 CEntityMain class for any object in game, stores associations, labeling and components
 CInputManagerInputManager class to handle input events and actions
 CInputActionInputAction struct to represent an action and its bindings
 CInteractionComponentInteractionComponent class to handle interaction events
 CInteractionEventdataStructStruct to hold data for interaction events. This struct is used to pass data to the interaction manager when an interaction event is triggered
 CManagerIs responsible for managing all entities
 CMapClass responsible for the creation and management of the map or background
 CPickupComponentPickupComponent class to handle pickup events
 CPickupManagerPickupManager class to handle the creation and management of pickups in the game
 CSoundManagerHandles music and sound
 CSpriteComponentSpriteComponent class to handle sprite rendering and animation of entities
 CStatEffectStruct to hold the duration, reset function and start time of a stat effect
 CStatEffectsComponentManages the lifecycle of temporary effects
 CTextureManagerA manager for loading, caching, and drawing textures
 CTexturesForward declaration of the Textures enum class
 CTransformComponentThe transform component is responsible for the position, direction and size of an entity. It is used to move the entity in the game world and to determine its size and position on the screen
diff --git a/annotated_dup.js b/annotated_dup.js index 340d674..f2f3cd9 100644 --- a/annotated_dup.js +++ b/annotated_dup.js @@ -1,8 +1,10 @@ var annotated_dup = [ + [ "Animation", "structAnimation.html", null ], [ "ColliderComponent", "classColliderComponent.html", "classColliderComponent" ], [ "CollisionHandler", "classCollisionHandler.html", "classCollisionHandler" ], [ "ConfigLoader", "classConfigLoader.html", null ], + [ "DataComponent", "classDataComponent.html", "classDataComponent" ], [ "Entity", "classEntity.html", "classEntity" ], [ "InputManager", "classInputManager.html", "classInputManager" ], [ "InteractionComponent", "classInteractionComponent.html", "classInteractionComponent" ], @@ -10,9 +12,11 @@ var annotated_dup = [ "Manager", "classManager.html", "classManager" ], [ "Map", "classMap.html", "classMap" ], [ "PickupComponent", "classPickupComponent.html", "classPickupComponent" ], - [ "SoundManager", "classSoundManager.html", null ], + [ "PickupManager", "classPickupManager.html", "classPickupManager" ], + [ "SoundManager", "classSoundManager.html", "classSoundManager" ], [ "SpriteComponent", "classSpriteComponent.html", "classSpriteComponent" ], [ "StatEffect", "structStatEffect.html", "structStatEffect" ], + [ "StatEffectsComponent", "classStatEffectsComponent.html", "classStatEffectsComponent" ], [ "TextureManager", "classTextureManager.html", "classTextureManager" ], [ "Textures", "classTextures.html", null ], [ "TransformComponent", "classTransformComponent.html", "classTransformComponent" ] diff --git a/classColliderComponent.html b/classColliderComponent.html index c91d1ef..97b414e 100644 --- a/classColliderComponent.html +++ b/classColliderComponent.html @@ -201,7 +201,7 @@ void removeCollision (
Parameters
- +
tagThe tag of the collider, can be any char*
hitboxScaleThe scale of the collider, used to scale the collider size, default is 1.0f and takes up the 32x32 pixels
hitboxScaleThe scale of the collider, used to scale the collider size (this is independent of the sprite size), default is 1.0f and takes up the 32x32 pixels
diff --git a/classCollisionHandler.js b/classCollisionHandler.js index 7c4a77d..d1c00d5 100644 --- a/classCollisionHandler.js +++ b/classCollisionHandler.js @@ -3,5 +3,6 @@ var classCollisionHandler = [ "getAnyIntersection", "classCollisionHandler.html#a247c551454374148029c2e88a5c325d9", null ], [ "getAnyIntersection", "classCollisionHandler.html#a79f12d91a9eb27153d63d1c3d82870b3", null ], [ "getAnyIntersection", "classCollisionHandler.html#a7696ffbe45a8df61cc1f81f669214399", null ], - [ "getAnyIntersection", "classCollisionHandler.html#aca14b15166c3bfbf26e9ff5a8895acd9", null ] + [ "getAnyIntersection", "classCollisionHandler.html#aca14b15166c3bfbf26e9ff5a8895acd9", null ], + [ "getIntersection", "classCollisionHandler.html#a9a52ac3eac33ef236ab0ced07f4763ce", null ] ]; \ No newline at end of file diff --git a/classConfigLoader.html b/classConfigLoader.html index f544962..afe718d 100644 --- a/classConfigLoader.html +++ b/classConfigLoader.html @@ -136,7 +136,7 @@ $(function(){initNavTree('classConfigLoader.html',''); initResizable(true); });

The currently available config parameters with their default values are:

{
"fullscreen": false,
"title": "VGG (Very Good Game)",
-
"screen_height": 600,
+
"screen_height": 640,
"screen_width": 800,
"icon": "./engine/internalAssets/iconImage.bmp"
}
diff --git a/classDataComponent-members.html b/classDataComponent-members.html new file mode 100644 index 0000000..30334b7 --- /dev/null +++ b/classDataComponent-members.html @@ -0,0 +1,139 @@ + + + + + + + + + VEGO-Engine: Member List + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+
VEGO-Engine +  0.1 +
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
DataComponent Member List
+
+
+ +

This is the complete list of members for DataComponent, including all inherited members.

+ + + +
getEntry(std::string key) constDataComponentinline
setEntry(const std::string &key, const T &value)DataComponentinline
+
+ + + + diff --git a/classDataComponent.html b/classDataComponent.html new file mode 100644 index 0000000..6a7bede --- /dev/null +++ b/classDataComponent.html @@ -0,0 +1,241 @@ + + + + + + + + + VEGO-Engine: DataComponent Class Reference + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+
VEGO-Engine +  0.1 +
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
DataComponent Class Reference
+
+
+ +

DataComponent class to centrally store data about an entity such as stats. + More...

+ +

#include <DataComponent.h>

+ + + + + + + + + + +

+Public Member Functions

template<typename T>
void setEntry (const std::string &key, const T &value)
 Set a key-value pair of any type in the data map.
 
template<typename T>
std::optional< T > getEntry (std::string key) const
 Get a value of type T from the data map.
 
+

Detailed Description

+

DataComponent class to centrally store data about an entity such as stats.

+

Member Function Documentation

+ +

◆ getEntry()

+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + +
std::optional< T > DataComponent::getEntry (std::string key) const
+
+inline
+
+ +

Get a value of type T from the data map.

+

e.g.

getEntry<int>("speed");
+
std::optional< T > getEntry(std::string key) const
Get a value of type T from the data map.
Definition DataComponent.h:31
+

in this case the key is "speed" and the value is returned as an integer

Parameters
+ + +
keyThe name to retrieve the value from
+
+
+
Returns
An optional of type T containing the value if it exists and matches in typeid, otherwise std::nullopt
+ +
+
+ +

◆ setEntry()

+ +
+
+
+template<typename T>
+ + + + + +
+ + + + + + + + + + + +
void DataComponent::setEntry (const std::string & key,
const T & value )
+
+inline
+
+ +

Set a key-value pair of any type in the data map.

+

e.g.

setEntry("speed", 180);
+
void setEntry(const std::string &key, const T &value)
Set a key-value pair of any type in the data map.
Definition DataComponent.h:22
+

in this case the key is "speed" and the value is set to an integer of 180

Parameters
+ + + +
keyThe name to store the value under
valueThe value to store of type T
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classDataComponent.js b/classDataComponent.js new file mode 100644 index 0000000..44c3d22 --- /dev/null +++ b/classDataComponent.js @@ -0,0 +1,5 @@ +var classDataComponent = +[ + [ "getEntry", "classDataComponent.html#a6e71b0bec578a208eb716676e3ccf667", null ], + [ "setEntry", "classDataComponent.html#a1dd53c6cb91e572090c2b6853881f8c9", null ] +]; \ No newline at end of file diff --git a/classPickupManager-members.html b/classPickupManager-members.html new file mode 100644 index 0000000..78574a8 --- /dev/null +++ b/classPickupManager-members.html @@ -0,0 +1,138 @@ + + + + + + + + + VEGO-Engine: Member List + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+
VEGO-Engine +  0.1 +
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
PickupManager Member List
+
+
+ +

This is the complete list of members for PickupManager, including all inherited members.

+ + +
createPickupable(Vector2D pos, std::function< void(Entity *)> pickupFunc, Textures texture)PickupManager
+
+ + + + diff --git a/classPickupManager.html b/classPickupManager.html new file mode 100644 index 0000000..30938a8 --- /dev/null +++ b/classPickupManager.html @@ -0,0 +1,195 @@ + + + + + + + + + VEGO-Engine: PickupManager Class Reference + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+
VEGO-Engine +  0.1 +
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
PickupManager Class Reference
+
+
+ +

PickupManager class to handle the creation and management of pickups in the game. + More...

+ +

#include <PickupManager.h>

+ + + + + +

+Public Member Functions

void createPickupable (Vector2D pos, std::function< void(Entity *)> pickupFunc, Textures texture)
 Creates a pickupable item and adds it to the manager.
 
+

Detailed Description

+

PickupManager class to handle the creation and management of pickups in the game.

+

Member Function Documentation

+ +

◆ createPickupable()

+ +
+
+ + + + + + + + + + + + + + + + +
void PickupManager::createPickupable (Vector2D pos,
std::function< void(Entity *)> pickupFunc,
Textures texture )
+
+ +

Creates a pickupable item and adds it to the manager.

+
Parameters
+ + + + +
posThe position of the pickupable item
+
pickupFuncThe function to be called when the pickupable item is picked up
textureThe texture of the pickupable item
+
+
+

This function creates a pickupable item entity and adds it to the manager. The pickupable item is created with a transform component, a sprite component, a collider component and a pickup component. The pickup function is called when the powerup is picked up by an entity.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/classPickupManager.js b/classPickupManager.js new file mode 100644 index 0000000..a77e462 --- /dev/null +++ b/classPickupManager.js @@ -0,0 +1,4 @@ +var classPickupManager = +[ + [ "createPickupable", "classPickupManager.html#a9e9fab0945ccd93749351e40a926c7d7", null ] +]; \ No newline at end of file diff --git a/classSoundManager.js b/classSoundManager.js new file mode 100644 index 0000000..8294018 --- /dev/null +++ b/classSoundManager.js @@ -0,0 +1,14 @@ +var classSoundManager = +[ + [ "addBackgroundMusic", "classSoundManager.html#a8717fc6cbf4cc3e863eda97deacad007", null ], + [ "addSoundEffects", "classSoundManager.html#a552795938033c602a28162fec202d20c", null ], + [ "fadeOutMusic", "classSoundManager.html#aea6a94c8b5456812c49115baa7534bf7", null ], + [ "pauseMusic", "classSoundManager.html#a5071bf5e87394afdb1e4148227ffc3ea", null ], + [ "pauseSound", "classSoundManager.html#a8031476c2ccd2dd1c40a39a102bc5844", null ], + [ "playMusic", "classSoundManager.html#a6f38946a458843cfc08ebd9e26c648a5", null ], + [ "playSound", "classSoundManager.html#a1065dec9d90a6fc8a363329a6e09ea42", null ], + [ "restartMusic", "classSoundManager.html#aaca970232ead83c6c107331f3d9ee0db", null ], + [ "restartSound", "classSoundManager.html#ac24dc06983603020f6556273d3c78df3", null ], + [ "setMusicVolume", "classSoundManager.html#ac5ad38c2322c75ba5481c60c4c26e0e8", null ], + [ "setSoundVolume", "classSoundManager.html#af99aee751f8300ba4041af004a97d319", null ] +]; \ No newline at end of file diff --git a/classSpriteComponent-members.html b/classSpriteComponent-members.html index 8459029..2fca3e8 100644 --- a/classSpriteComponent-members.html +++ b/classSpriteComponent-members.html @@ -125,10 +125,11 @@ $(function(){initNavTree('classSpriteComponent.html',''); initResizable(true); }

This is the complete list of members for SpriteComponent, including all inherited members.

- - - - + + + + +
SpriteComponent(Textures texture, int zIndex)SpriteComponent
SpriteComponent(Textures texture, int xOffset, int yOffset, int zIndex)SpriteComponent
SpriteComponent(const char *path, int xOffset, int yOffset, int zIndex)SpriteComponent
SpriteComponent(Textures texture, bool isAnimated, std::map< std::string, std::unique_ptr< Animation > > *animationList, std::string defaultAnimation, int zIndex)SpriteComponent
playAnimation(std::string type)SpriteComponent
SpriteComponent(Textures texture, int zIndex)SpriteComponent
SpriteComponent(Textures texture, int xOffset, int yOffset, int zIndex)SpriteComponent
SpriteComponent(const char *path, int xOffset, int yOffset, int zIndex)SpriteComponent
SpriteComponent(Textures texture, bool isAnimated, std::map< std::string, std::unique_ptr< Animation > > *animationList, std::string defaultAnimation, int zIndex, int xOffset=0, int yOffset=0)SpriteComponent
diff --git a/classSpriteComponent.html b/classSpriteComponent.html index 77aabf1..f956c78 100644 --- a/classSpriteComponent.html +++ b/classSpriteComponent.html @@ -126,7 +126,7 @@ $(function(){initNavTree('classSpriteComponent.html',''); initResizable(true); }
-

SpriteComponent class to handle sprite rendering and animation. +

SpriteComponent class to handle sprite rendering and animation of entities. More...

#include <SpriteComponent.h>

@@ -134,20 +134,21 @@ $(function(){initNavTree('classSpriteComponent.html',''); initResizable(true); }

Public Member Functions

 SpriteComponent (Textures texture, int zIndex) - Constructor for SpriteComponent.
+ Constructor for SpriteComponent.
   SpriteComponent (Textures texture, int xOffset, int yOffset, int zIndex) - zIndex The z-index of the sprite, used for rendering order, in order to show up on the map, the zIndex must be higher than the layer you want it to show up on
   SpriteComponent (const char *path, int xOffset, int yOffset, int zIndex) - zIndex The z-index of the sprite, used for rendering order, in order to show up on the map, the zIndex must be higher than the layer you want it to show up on
  - SpriteComponent (Textures texture, bool isAnimated, std::map< std::string, std::unique_ptr< Animation > > *animationList, std::string defaultAnimation, int zIndex) - used for animated sprites
-  + SpriteComponent (Textures texture, bool isAnimated, std::map< std::string, std::unique_ptr< Animation > > *animationList, std::string defaultAnimation, int zIndex, int xOffset=0, int yOffset=0) + Constructor used for animated sprites.
+  +void playAnimation (std::string type) + By name select which animation should be played (gets looped)

Detailed Description

-

SpriteComponent class to handle sprite rendering and animation.

+

SpriteComponent class to handle sprite rendering and animation of entities.

Constructor & Destructor Documentation

◆ SpriteComponent() [1/4]

@@ -168,14 +169,14 @@ Public Member Functions
-

Constructor for SpriteComponent.

+

Constructor for SpriteComponent.

Parameters
- + +
textureThe texture to be used for the sprite, must be a Texture enum
textureThe texture to be used for the sprite, must be a Texture enum
zIndexThe z-index of the sprite, used for rendering order, in order to show up on the map, the zIndex must be higher than the layer you want it to show up on
-

zIndex The z-index of the sprite, used for rendering order, in order to show up on the map, the zIndex must be higher than the layer you want it to show up on

@@ -207,13 +208,12 @@ Public Member Functions
- -

zIndex The z-index of the sprite, used for rendering order, in order to show up on the map, the zIndex must be higher than the layer you want it to show up on

Parameters
- - + + +
textureThe texture to be used for the sprite, must be a Texture enum
xOffsetThe x offset of the sprite, used for rendering position
yOffsetThe y offset of the sprite, used for rendering position
xOffsetThe x offset of the sprite relative to the transform component position, used for rendering position
yOffsetThe y offset of the sprite relative to the transform component position, used for rendering position
zIndexThe z-index of the sprite, used for rendering order, in order to show up on the map, the zIndex must be higher than the layer you want it to show up on
@@ -248,21 +248,20 @@ Public Member Functions
- -

zIndex The z-index of the sprite, used for rendering order, in order to show up on the map, the zIndex must be higher than the layer you want it to show up on

Parameters
- - - + + + +
textureThe texture to be used for the sprite, must be a char* path
xOffsetThe x offset of the sprite, used for rendering position
yOffsetThe y offset of the sprite, used for rendering position
pathThe path to the texture to be used for the entity (for performance reasons, prefer enums instead)
xOffsetThe x offset of the sprite relative to the transform component position, used for rendering position
yOffsetThe y offset of the sprite relative to the transform component position, used for rendering position
zIndexThe z-index of the sprite, used for rendering order, in order to show up on the map, the zIndex must be higher than the layer you want it to show up on
- -

◆ SpriteComponent() [4/4]

+ +

◆ SpriteComponent() [4/4]

@@ -280,7 +279,7 @@ Public Member Functions - std::map< std::string, std::unique_ptr< Animation > > * animationList, + std::map< std::string, std::unique_ptr< Animation > > * animationList, @@ -290,19 +289,64 @@ Public Member Functions - int zIndex ) + int zIndex, + + + + + int xOffset = 0, + + + + + int yOffset = 0 )
-

used for animated sprites

+

Constructor used for animated sprites.

Parameters
- + + + +
textureThe texture to be used for the sprite, must be a Texture enum
isAnimatedWhether the sprite is animated or not
animationListThe list of animations to be used for the sprite
animationListThe list of animations to be used for the sprite (list of maps mapping a string to an Animation struct)
defaultAnimationThe default animation to be used for the sprite when it first gets loaded
zIndexThe z-index of the sprite, used for rendering order, in order to show up on the map, the zIndex must be higher than the layer you want it to show up on
xOffsetThe x offset of the sprite relative to the transform component position, used for rendering position
yOffsetThe y offset of the sprite relative to the transform component position, used for rendering position
+
+
+

+How to spritesheet animation:

+

An animation sprite sheet consists of multiple sprites of the specified size (library supports 32x32) arranged in a grid. Each row of the grid represents one animation, and each column in a row is one frame of the animation. If a sprite sheet contains multiple animations with different frame counts, you can just leave the rest of the row blank. Be aware to specify the correct frame count in the animation struct!

See also
Animation
+
+ +
+Example of a sprite sheet with 2 animations of 2 frames each
+ +
+
+

Member Function Documentation

+ +

◆ playAnimation()

+ +
+
+ + + + + + + +
void SpriteComponent::playAnimation (std::string type)
+
+ +

By name select which animation should be played (gets looped)

+
Parameters
+ +
typename previously set to an animation in animationList
diff --git a/classSpriteComponent.js b/classSpriteComponent.js index dae2f2b..386a096 100644 --- a/classSpriteComponent.js +++ b/classSpriteComponent.js @@ -3,5 +3,6 @@ var classSpriteComponent = [ "SpriteComponent", "classSpriteComponent.html#af767b0da914fc583613626ac58505d58", null ], [ "SpriteComponent", "classSpriteComponent.html#a2c2b0ac3fc6418bb475d257597905e66", null ], [ "SpriteComponent", "classSpriteComponent.html#a5987774516010e021703a02a37d0509b", null ], - [ "SpriteComponent", "classSpriteComponent.html#a0af0ea0070ffc60b3b8d0e1c1f13b5f2", null ] + [ "SpriteComponent", "classSpriteComponent.html#a2c60f55924b1d18b9e6fb530b5c5346a", null ], + [ "playAnimation", "classSpriteComponent.html#aa4ebb6763d8b994f412dec66ecf58c59", null ] ]; \ No newline at end of file diff --git a/classStatEffectsComponent-members.html b/classStatEffectsComponent-members.html new file mode 100644 index 0000000..5567051 --- /dev/null +++ b/classStatEffectsComponent-members.html @@ -0,0 +1,138 @@ + + + + + + + + + VEGO-Engine: Member List + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+
VEGO-Engine +  0.1 +
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
StatEffectsComponent Member List
+
+
+ +

This is the complete list of members for StatEffectsComponent, including all inherited members.

+ + +
addEffect(uint32_t duration, std::function< void()> resetFunction)StatEffectsComponent
+
+ + + + diff --git a/classStatEffectsComponent.html b/classStatEffectsComponent.html new file mode 100644 index 0000000..c827745 --- /dev/null +++ b/classStatEffectsComponent.html @@ -0,0 +1,187 @@ + + + + + + + + + VEGO-Engine: StatEffectsComponent Class Reference + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+
VEGO-Engine +  0.1 +
+
+
+ + + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
StatEffectsComponent Class Reference
+
+
+ +

Manages the lifecycle of temporary effects. + More...

+ +

#include <StatEffectsComponent.h>

+ + + + + +

+Public Member Functions

void addEffect (uint32_t duration, std::function< void()> resetFunction)
 Add a stat effect to the entity.
 
+

Detailed Description

+

Manages the lifecycle of temporary effects.

+

Member Function Documentation

+ +

◆ addEffect()

+ +
+
+ + + + + + + + + + + +
void StatEffectsComponent::addEffect (uint32_t duration,
std::function< void()> resetFunction )
+
+ +

Add a stat effect to the entity.

+
Parameters
+ + + +
durationThe duration of the effect in milliseconds
resetFunctionThe function to reset the effect, will be called on expiry of duration
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/classStatEffectsComponent.js b/classStatEffectsComponent.js new file mode 100644 index 0000000..d82b61c --- /dev/null +++ b/classStatEffectsComponent.js @@ -0,0 +1,4 @@ +var classStatEffectsComponent = +[ + [ "addEffect", "classStatEffectsComponent.html#a2d5edffc1abd620d39aa0315a1504b13", null ] +]; \ No newline at end of file diff --git a/classTransformComponent-members.html b/classTransformComponent-members.html index 885b576..1b1b634 100644 --- a/classTransformComponent-members.html +++ b/classTransformComponent-members.html @@ -125,7 +125,9 @@ $(function(){initNavTree('classTransformComponent.html',''); initResizable(true)

This is the complete list of members for TransformComponent, including all inherited members.

- + + +
TransformComponent(int scale=1)TransformComponentexplicit
TransformComponent(float scale=1)TransformComponentexplicit
TransformComponent(float x, float y, float scale=1)TransformComponent
TransformComponent(float x, float y, int w, int h, float scale=1)TransformComponent
diff --git a/classTransformComponent.html b/classTransformComponent.html index 30eafde..19e4bad 100644 --- a/classTransformComponent.html +++ b/classTransformComponent.html @@ -126,22 +126,25 @@ $(function(){initNavTree('classTransformComponent.html',''); initResizable(true)
-

Adds a transform to an entity when added via entity.addComponent() +

The transform component is responsible for the position, direction and size of an entity. It is used to move the entity in the game world and to determine its size and position on the screen. More...

#include <TransformComponent.h>

- - + + + + + +

Public Member Functions

 TransformComponent (int scale=1)
 
 TransformComponent (float scale=1)
 
 TransformComponent (float x, float y, float scale=1)
 
 TransformComponent (float x, float y, int w, int h, float scale=1)
 

Detailed Description

-

Adds a transform to an entity when added via entity.addComponent()

-

The transform component is responsible for the position, direction and size of an entity. It is used to move the entity in the game world and to determine its size and position on the screen.

+

The transform component is responsible for the position, direction and size of an entity. It is used to move the entity in the game world and to determine its size and position on the screen.

Constructor & Destructor Documentation

- -

◆ TransformComponent()

+ +

◆ TransformComponent() [1/3]

@@ -152,7 +155,7 @@ Public Member Functions TransformComponent::TransformComponent ( - int scale = 1) + float scale = 1) @@ -162,7 +165,93 @@ Public Member Functions
-
Attention
in order to allow an entity to move the stat "speed" must be set in the DataComponent (written exactly like that and set to any positive int value, 0 will lead to no movement, negative numbers to backwards movement)
+
Attention
in order to allow an entity to move the stat "speed" must be set in the DataComponent (written exactly like that and set to any positive int value, 0 will lead to no movement, negative numbers to backwards movement)
+
Parameters
+ + +
scalebase value is 1 (32x32px), size gets multiplied with scale
+
+
+ +
+
+ +

◆ TransformComponent() [2/3]

+ +
+
+ + + + + + + + + + + + + + + + +
TransformComponent::TransformComponent (float x,
float y,
float scale = 1 )
+
+
Parameters
+ + + + +
xx coordinate of spawnposition
yy coordinate of spawnposition
scalebase value is 1 (32x32px per default), size gets multiplied with scale
+
+
+ +
+
+ +

◆ TransformComponent() [3/3]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
TransformComponent::TransformComponent (float x,
float y,
int w,
int h,
float scale = 1 )
+
+
Parameters
+ + + + + + +
xx coordinate of spawnposition
yy coordinate of spawnposition
wadd custom width
hadd custom height
scalebase value is 1 (32x32px per default), size gets multiplied with scale
+
+
diff --git a/classTransformComponent.js b/classTransformComponent.js index f89b129..7156ff6 100644 --- a/classTransformComponent.js +++ b/classTransformComponent.js @@ -1,4 +1,6 @@ var classTransformComponent = [ - [ "TransformComponent", "classTransformComponent.html#ad3844c3c266a2cfd206f24f7a09c9014", null ] + [ "TransformComponent", "classTransformComponent.html#a636369521f092e7dc3f8dd34b8f8c68d", null ], + [ "TransformComponent", "classTransformComponent.html#af69e09cf21f97b258bf9ab4aecb096d9", null ], + [ "TransformComponent", "classTransformComponent.html#aa6c585faf233543172f739fb306e6c74", null ] ]; \ No newline at end of file diff --git a/classes.html b/classes.html index 2b38a68..a864f24 100644 --- a/classes.html +++ b/classes.html @@ -122,11 +122,17 @@ $(function(){initNavTree('classes.html',''); initResizable(true); });
Class Index
-
C | E | I | M | P | S | T | Z
+
A | C | D | E | I | M | P | S | T | Z
+
A
+
Animation
+
C
ColliderComponent
CollisionHandler
ConfigLoader
+
+
D
+
DataComponent
E
Entity
@@ -138,10 +144,10 @@ $(function(){initNavTree('classes.html',''); initResizable(true); });
Manager
Map
P
-
PickupComponent
+
PickupComponent
PickupManager
S
-
SoundManager
SpriteComponent
StatEffect
+
SoundManager
SpriteComponent
StatEffect
StatEffectsComponent
T
TextureManager
Textures
TransformComponent
diff --git a/doxygen_crawl.html b/doxygen_crawl.html index a555d62..d16470b 100644 --- a/doxygen_crawl.html +++ b/doxygen_crawl.html @@ -72,6 +72,10 @@ + + + + @@ -194,6 +198,9 @@ + + + @@ -209,10 +216,14 @@ - + + + + + @@ -222,7 +233,9 @@ - + + + @@ -238,19 +251,32 @@ + - - + + + + + + + + + - + - - - - + + + + + + + + + diff --git a/functions.html b/functions.html index 0e8b99a..14b8f52 100644 --- a/functions.html +++ b/functions.html @@ -125,6 +125,7 @@ $(function(){initNavTree('functions.html',''); initResizable(true); });
  • actor : InteractionEventdataStruct
  • addBackgroundMusic() : SoundManager
  • addComponent() : Entity
  • +
  • addEffect() : StatEffectsComponent
  • addEntity() : Manager
  • addSingleTexture() : TextureManager
  • addSoundEffects() : SoundManager
  • @@ -134,6 +135,7 @@ $(function(){initNavTree('functions.html',''); initResizable(true); });

    - c -

    @@ -162,6 +164,7 @@ $(function(){initNavTree('functions.html',''); initResizable(true); });
  • getCollider() : ColliderComponent
  • getComponent() : Entity
  • getComponentAsPointer() : Entity
  • +
  • getEntry() : DataComponent
  • getGame() : Manager
  • getIntersection() : CollisionHandler
  • getManager() : Entity
  • @@ -204,6 +207,7 @@ $(function(){initNavTree('functions.html',''); initResizable(true); });
  • pauseMusic() : SoundManager
  • pauseSound() : SoundManager
  • PickupComponent() : PickupComponent
  • +
  • playAnimation() : SpriteComponent
  • playMusic() : SoundManager
  • playSound() : SoundManager
  • @@ -221,6 +225,7 @@ $(function(){initNavTree('functions.html',''); initResizable(true); });

    - s -

    • setActiveContext() : InputManager
    • +
    • setEntry() : DataComponent
    • setMusicVolume() : SoundManager
    • setSoundVolume() : SoundManager
    • SpriteComponent() : SpriteComponent
    • @@ -231,7 +236,7 @@ $(function(){initNavTree('functions.html',''); initResizable(true); });

      - t -

      diff --git a/functions_func.html b/functions_func.html index 5490e1c..84e758b 100644 --- a/functions_func.html +++ b/functions_func.html @@ -124,6 +124,7 @@ $(function(){initNavTree('functions_func.html',''); initResizable(true); });

      - a -

      @@ -211,6 +215,7 @@ $(function(){initNavTree('functions_func.html',''); initResizable(true); });

      - s -

      • setActiveContext() : InputManager
      • +
      • setEntry() : DataComponent
      • setMusicVolume() : SoundManager
      • setSoundVolume() : SoundManager
      • SpriteComponent() : SpriteComponent
      • @@ -218,7 +223,7 @@ $(function(){initNavTree('functions_func.html',''); initResizable(true); });

        - t -

        diff --git a/index.html b/index.html index 22c7881..5d7fb88 100644 --- a/index.html +++ b/index.html @@ -124,15 +124,18 @@ $(function(){initNavTree('index.html',''); initResizable(true); });

        Here you will (hopefully) find any information necessary to use the different classes and components of this engine to develop your own simple 2D games.

        -

        The base functionality can be split into a few major sections:

        +

        You can also of course just browse the classes on your own this just act as a more structured separation and docuementation of relevant features

        -

        Example code and quick start docu for each relevant function can be found within the template files themselves, use GameImplementation.cpp as a starting point.

        +

        DISCLAIMER: EVERYTHING IN THE GIVEN TEMPLATE CODE IS OPTIONAL EVERYTHING FOUND IN THERE IS JUST A GUIDE AND CAN BE CHANGED AND/OR DELETED WITHOUT A PROBLEM

    diff --git a/md_docs_2md-pages_2config.html b/md_docs_2md-pages_2config.html new file mode 100644 index 0000000..b73d42d --- /dev/null +++ b/md_docs_2md-pages_2config.html @@ -0,0 +1,143 @@ + + + + + + + + + VEGO-Engine: Configuring the game + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + +
    +
    VEGO-Engine +  0.1 +
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Configuring the game
    +
    +
    +

    +

    By either adding your own configuration .json file and overwriting its path in setConfigFilePath() found in Chickengame.cpp or editing configs/mainConfig.json you can configure some aspects of the game. These are:

      +
    • fullscreen: bool to determine if you want your game to be displayed in fullscreen or not. Maintains the screen size set in screen_width and screen_height and stretches it out
    • +
    • screen_width: int, in pixels
    • +
    • screen_height: int, in pixels
    • +
    • title: string, the title of the game/the name displayed on the top left of the window
    • +
    • icon: string, path to the bitmap (.btm) you want to use as the app icon of your game
    • +
    +
    +
    +
    + + + + diff --git a/md_docs_2md-pages_2entitiesAndComponents.html b/md_docs_2md-pages_2entitiesAndComponents.html index 04d1557..6d1c77f 100644 --- a/md_docs_2md-pages_2entitiesAndComponents.html +++ b/md_docs_2md-pages_2entitiesAndComponents.html @@ -122,37 +122,50 @@ $(function(){initNavTree('md_docs_2md-pages_2entitiesAndComponents.html',''); in
    Entities and Components
    -

    -

    +

    +

    Entities

    In the scope of this library entities essentially function like empty containers that you can add components or properties to. So an entity can be whatever you want it to be, give it a texture, make it pickupable, give it collision or all of the above and more. Here is a quick overview over relevant classes containing functions pertaining to the creation and editing of entities:

    -

    +

    Components

    -

    The following components are currently available to you to use in your entities:

      -
    • Collider Component
    • -
    -

    Adds collision functionality to an Entity meaning functionality can be assigned to happen when two Entities collision boxes intersect --> this is used by the library, the developer themselves cannot (yet) add custom functionality to happen on collision. It is used to stop entities from running through tiles given the "collision" tag (see Tiled section) and to enable picking up other entities.

      -
    • Data Component
    • -
    -

    Custom Data such as Stats can be added to an Entity and accessed using this Component. If an Entity is supposed to have movement the stat "speed" has to be added!

      -
    • Interaction Component
    • -
    -

    Adding this component to an entity tells it to react to triggered Interactions e.g. by button press. For this a custom lambda or function pointer is passed to determine what exactly should happen once an entities ineraction was triggered.

      -
    • Pickup Component
    • -
    -

    Entities with pickup components will disappear once another collision having entity with the Group Label "Player" intersects with it and executes the custom functionality given to it via constructor.

      -
    • Sprite Component
    • -
    -

    Textures and Animations can be added via this component

      -
    • Stateffects Component
    • -
    -

    Temporary stateffects can be added using this component. Using the time and function passed it will execute whatever is in the function after the given time. It is used to e.g. reset stats after raising them in order to allow for temporary stat raises

      -
    • Transform Component
    • -
    -

    The Transform Component manages the position and movement of an Entity. Multiple overloaded constructors exist depending on whether or not the entity is stationary

    +

    The following components are currently available to you to use in your entities (the associated managers/handlers are also linked):

    +
    +

    +Collider Component

    +

    see also Collision Handler

    +

    Adds collision functionality to an Entity meaning functionality can be assigned to happen when two Entities collision boxes intersect --> this is used by the library, the developer themselves cannot (yet) add custom functionality to happen on collision unless the Collision handler itself is directly used. It is used to stop entities from running through tiles given the "collision" tag (see Tiled section) and to enable picking up other entities.

    +
    +

    +Data Component

    +

    Custom Data such as Stats can be added to an Entity and accessed using this Component.

    +
    Important
    If an Entity is supposed to have movement the stat "speed" has to be added and set to a positive int!
    +
    +

    +Interaction Component

    +

    see also InteractionEventdataStruct

    +

    Adding this component to an entity tells it to react to triggered Interactions e.g. by button press. For this a custom lambda or function pointer is passed to determine what exactly should happen once an entities ineraction was triggered.

    +
    Note
    This component is only used to assign a functionality to an entity to be triggered when it is interacted with, to actually map a button to do something such as trigger an interaction refer to Input Management and Eventhandling
    +
    +

    +Pickup Component

    +

    see also Pickup Manager

    +

    Entities with pickup components will disappear once another collision having entity with the Group Label "Player" intersects with it and executes the custom functionality given to it via constructor.

    +
    +

    +Transform Component

    +

    The Transform Component manages the position and movement of an Entity. Multiple overloaded constructors exist depending on whether or not the entity is stationary

    +
    +

    +Sprite Component

    +

    Textures and Animations can be added via this component.

    +
    Important
    A Transform Component is first needed before adding a Texture as the coordinates from the transform component are needed to tell the game where to render the texture
    +
    +

    +Stat Effects Component

    +

    Temporary stateffects can be added using this component. Using the time and function passed it will execute whatever is in the function after the given time. It is used to e.g. reset stats after raising them in order to allow for temporary stat raises

    diff --git a/md_docs_2md-pages_2eventhandling.html b/md_docs_2md-pages_2eventhandling.html index 7b1d160..5066dc9 100644 --- a/md_docs_2md-pages_2eventhandling.html +++ b/md_docs_2md-pages_2eventhandling.html @@ -122,7 +122,7 @@ $(function(){initNavTree('md_docs_2md-pages_2eventhandling.html',''); initResiza
    Interactions
    -

    +

    In order to make an entity react to interactions it needs to include an implementation of InteractionListener such as the InteractionComponent. Using its constructor you can add a lambda/function pointer containing what you want to happen once an interaction with this entity happens.

    diff --git a/md_docs_2md-pages_2inputhandling.html b/md_docs_2md-pages_2inputhandling.html index cba1810..ec259c9 100644 --- a/md_docs_2md-pages_2inputhandling.html +++ b/md_docs_2md-pages_2inputhandling.html @@ -122,8 +122,9 @@ $(function(){initNavTree('md_docs_2md-pages_2inputhandling.html',''); initResiza
    Input Management
    -

    -

    Using the function registerAction() Keys (both key press and key release) can be mapped to do certain actions such as moving an entity. Example code can be found within the template

    +

    +

    Using the function registerAction() Keys (both key press and key release) can be mapped to do certain actions such as moving an entity. Example code can be found within the template under Controls.h and Controls.cpp.

    +

    Tip: If you want to apply any Inputs to a specific entity e.g. movement, simply pass the entity as a parameter in the initControls() function

    diff --git a/md_docs_2md-pages_2quickstart.html b/md_docs_2md-pages_2quickstart.html index 3845ad9..eb75260 100644 --- a/md_docs_2md-pages_2quickstart.html +++ b/md_docs_2md-pages_2quickstart.html @@ -122,9 +122,9 @@ $(function(){initNavTree('md_docs_2md-pages_2quickstart.html',''); initResizable
    Quickstart guide for setting up the library
    -

    +

    This guide's purpose is to get developers from 0 to being able to create their game in the quickest and most uncomplicated way possible. Therefore it will only go over the bare minimum to get everything up and running for implementation guides check out the other sections on the welcome page.

    -

    +

    Installations and tools

    Go to the github repository and download the setup file for your OS (windows and linux supported). This file needs to be executed in the folder you want to start your project in which will start the initial setup. While you can also manually download all of the necessary tools, this setup file acts as a central automated executable to streamline and expedite the non-game development aspect of this process which is why it is highly recommended. The tools downloaded are:

    • mingw(win)/gcc(linux)
    • diff --git a/md_docs_2md-pages_2tilemaps.html b/md_docs_2md-pages_2tilemaps.html index 214b4cf..88e3985 100644 --- a/md_docs_2md-pages_2tilemaps.html +++ b/md_docs_2md-pages_2tilemaps.html @@ -6,7 +6,7 @@ - VEGO-Engine: Building an environment using Tiled and tmx + VEGO-Engine: Building a map using Tiled and tmx and loading it @@ -119,45 +119,72 @@ $(function(){initNavTree('md_docs_2md-pages_2tilemaps.html',''); initResizable(t
    -
    Building an environment using Tiled and tmx
    +
    Building a map using Tiled and tmx and loading it
    -

    +

    +

    In order to create a map for your game the library has .tmx format support. In order to get .tmx files you use the associated tile editor "Tiled" which gets automatically downloaded when executing the VEGO libraries setup file (the installer is provided the installation itself must be finalized by the user). This section will walk you step by step through the creation of your first map/background using Tiled.

    see also: the official Tiled documentation

    -

    After opening Tiled, select "New Map", a custom size measured in tiles and as tile size select 32x32 as this is the size the library currently supports.

    -

    +

    +Getting started

    +

    After opening Tiled, select "New Map", a custom size measured in tiles and as tile size select 32x32 as this is the size the library currently supports. Also choose the size of your canvas, it is recommended you choose the same size as the one you defined in the games config (default is 25w x 20h, measured in tiles, to get the pixel size just multiply by 32 as that is the tilesize the library uses)

    +

    +

    +

    Create a New Tileset

    -
    In the editor, go to the lower-right corner and select "New Tileset".
    -
    -Give your tileset a name.
    -
    -Make sure to select "Embed in map".
    -
    -Choose your tilesheet as the source.
    -

    +
      +
    1. In the editor, go to the lower-right corner and select "New Tileset".
    2. +
    3. Give your tileset a name.
    4. +
    5. Make sure to select "Embed in map".
    6. +
    7. Choose your tilesheet as the source.
    8. +
    9. Leave the rest of the settings on default
    10. +
    +

    +

    Draw Your Environment

    -
    Once imported, you can select tiles from the tileset and use them to build your environment.
    -

    +

    Once imported, you can select tiles from the tileset and use them to build your environment.

    +

    Understand Layers in Tiled

    -
    Tiled allows you to use multiple layers for organizing your map.
    -
    -You need to give your Layers seperate z-Indices to decide their rendering order, the lower the number the earlier it gets rendered.
    -
    -In order to do this select a layer.
    -
    -Add a new int property named "zIndex" and give it a number starting with 0 to decide when to render it (0 gets rendered first etc.).
    -
    -Important: Tiles that should have collision must be placed on a separate layer.
    -

    +

    Tiled allows you to use multiple layers for organizing your map.

    +

    You need to give your Layers seperate z-Indices to decide their rendering order, the lower the number the earlier it gets rendered. In order to do this:

      +
    1. Select a layer.
    2. +
    +
      +
    1. Right-click "Custom Properties" and go to "Add Property".
    2. +
    +
      +
    1. Add a new int property named "zIndex" and give it a number starting with 0 to decide when to render it (the lower the number the more the layer is in the background i.e. tiles on layer 0 will be covered by tiles on layer 1 if they occupy the same space).
    2. +
    +
    + +
    +

    Important: Tiles that should have collision must be placed on a separate layer as custom properties are per layer not per tile.

    +

    Set Up Collision

    -
    Select the layer you want to have collision.
    -
    -Right-click and go to "Custom Properties".
    -
    -Add a new boolean property named "collision" and tick the checkbox.
    -
    -Any tile placed on this layer will now automatically have collision—meaning moving entities cannot pass through them.
    -
    +

    To add collision to a layer:

    +
      +
    1. Select the layer you want to have collision.
    2. +
    +
      +
    1. Right-click and go to "Custom Properties".
    2. +
    +
      +
    1. Add a new boolean property named "collision" and tick the checkbox.
    2. +
    +
    + +
    +

    Any tile placed on this layer will now automatically have collision—meaning moving entities cannot pass through them.

    +

    +Saving your work

    +

    After completeing your map, save it in the asset folder of the library (or any place really the asset folder just exists as a recommendation to easily find all of your maps and textures)

    +
    + +
    +

    +Loading your work into the game

    +

    The map gets loaded into the game in GameImplementation.cpp, simply add the path of the map .tmx file to the Map constructor

    +
    diff --git a/navtreedata.js b/navtreedata.js index fa988a3..5b628c1 100644 --- a/navtreedata.js +++ b/navtreedata.js @@ -26,16 +26,25 @@ var NAVTREE = [ [ "VEGO-Engine", "index.html", [ [ "Welcome to the VEGO library documentation", "index.html", null ], + [ "Configuring the game", "md_docs_2md-pages_2config.html", null ], [ "Entities and Components", "md_docs_2md-pages_2entitiesAndComponents.html", [ - [ "Entities", "md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md1", null ], - [ "Components", "md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md2", null ] + [ "Entities", "md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md3", null ], + [ "Components", "md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md4", [ + [ "Collider Component", "md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md6", null ], + [ "Data Component", "md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md8", null ], + [ "Interaction Component", "md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md10", null ], + [ "Pickup Component", "md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md12", null ], + [ "Transform Component", "md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md14", null ], + [ "Sprite Component", "md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md16", null ], + [ "Stat Effects Component", "md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md18", null ] + ] ] ] ], [ "Interactions", "md_docs_2md-pages_2eventhandling.html", null ], [ "Input Management", "md_docs_2md-pages_2inputhandling.html", null ], [ "Quickstart guide for setting up the library", "md_docs_2md-pages_2quickstart.html", [ - [ "Installations and tools", "md_docs_2md-pages_2quickstart.html#autotoc_md7", null ] + [ "Installations and tools", "md_docs_2md-pages_2quickstart.html#autotoc_md23", null ] ] ], - [ "Building an environment using Tiled and tmx", "md_docs_2md-pages_2tilemaps.html", null ], + [ "Building a map using Tiled and tmx and loading it", "md_docs_2md-pages_2tilemaps.html", null ], [ "Todo List", "todo.html", null ], [ "Deprecated List", "deprecated.html", null ], [ "Classes", "annotated.html", [ diff --git a/navtreeindex0.js b/navtreeindex0.js index 5a7c543..883752e 100644 --- a/navtreeindex0.js +++ b/navtreeindex0.js @@ -1,145 +1,176 @@ var NAVTREEINDEX0 = { -"AnimationHandler_8h_source.html":[9,0,0,0], -"BackgroundMusic_8h_source.html":[9,0,0,1], -"ColliderComponent_8h_source.html":[9,0,0,2], -"CollisionHandler_8cpp.html":[9,0,1,0], -"CollisionHandler_8h.html":[9,0,0,3], -"CollisionHandler_8h_source.html":[9,0,0,3], -"Component_8h_source.html":[9,0,0,4], -"ConfigLoader_8h_source.html":[9,0,0,5], -"Constants_8h_source.html":[9,0,0,6], -"DataComponent_8h_source.html":[9,0,0,7], -"Defines_8h_source.html":[9,0,0,8], -"Direction_8h_source.html":[9,0,0,9], -"ECS_8h_source.html":[9,0,0,10], -"Entity_8h_source.html":[9,0,0,11], -"EventManager_8h_source.html":[9,0,0,12], -"GameFactory_8h_source.html":[9,0,0,14], -"GameInternal_8h_source.html":[9,0,0,15], -"GameRegistryHelper_8h_source.html":[9,0,0,16], -"Game_8h_source.html":[9,0,0,13], -"HealthComponent_8h_source.html":[9,0,0,17], -"InputComponent_8h_source.html":[9,0,0,18], -"InputManager_8h_source.html":[9,0,0,19], -"InteractionComponent_8h_source.html":[9,0,0,20], -"InteractionEventdataStruct_8h_source.html":[9,0,0,21], -"InteractionListener_8h_source.html":[9,0,0,22], -"InteractionManager_8h_source.html":[9,0,0,23], -"Manager_8h_source.html":[9,0,0,24], -"Map_8h_source.html":[9,0,0,25], -"PickupComponent_8h_source.html":[9,0,0,26], -"PickupManager_8h_source.html":[9,0,0,27], -"PlayerComponent_8h_source.html":[9,0,0,28], -"ProjectileComponent_8h_source.html":[9,0,0,29], -"RenderManager_8h_source.html":[9,0,0,30], -"RenderObject_8h_source.html":[9,0,0,31], -"SoundEffects_8h_source.html":[9,0,0,32], -"SoundManager_8h_source.html":[9,0,0,33], -"SpriteComponent_8h_source.html":[9,0,0,34], -"StatEffectsComponent_8h_source.html":[9,0,0,35], -"TextureManager_8h_source.html":[9,0,0,36], -"Textures_8h_source.html":[9,0,0,37], -"TileComponent_8h_source.html":[9,0,0,38], -"TransformComponent_8cpp.html":[9,0,1,1], -"TransformComponent_8h_source.html":[9,0,0,39], -"VEGO_8h_source.html":[9,0,0,41], -"VEGO__Event_8h_source.html":[9,0,0,42], -"Vector2D_8h_source.html":[9,0,0,40], -"annotated.html":[8,0], -"classColliderComponent.html":[8,0,0], -"classColliderComponent.html#a29b7a4326327382ec473730a07f57b9a":[8,0,0,1], -"classColliderComponent.html#a334729b3c9b86cf7ee99b908f100a043":[8,0,0,2], -"classColliderComponent.html#a4438054178328402309cf72589f4f163":[8,0,0,3], -"classColliderComponent.html#a6ac04cfb252c5712d53aaa30603165e3":[8,0,0,5], -"classColliderComponent.html#a916be6c5f07a15fbd4f198be4c3c5a5f":[8,0,0,4], -"classColliderComponent.html#ab2b8fbba2f80f7b9bbf70504f8c3c670":[8,0,0,0], -"classCollisionHandler.html":[8,0,1], -"classCollisionHandler.html#a247c551454374148029c2e88a5c325d9":[8,0,1,0], -"classCollisionHandler.html#a7696ffbe45a8df61cc1f81f669214399":[8,0,1,2], -"classCollisionHandler.html#a79f12d91a9eb27153d63d1c3d82870b3":[8,0,1,1], -"classCollisionHandler.html#aca14b15166c3bfbf26e9ff5a8895acd9":[8,0,1,3], -"classConfigLoader.html":[8,0,2], -"classEntity.html":[8,0,3], -"classEntity.html#a691dbe5f9ec930c27af2af0b97907a9e":[8,0,3,3], -"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2b":[8,0,3,0], -"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2ba46dccab75ce652352e52086601fdc294":[8,0,3,0,3], -"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2ba5262638eb9e1d1af560f3d0f9ad133e4":[8,0,3,0,5], -"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2ba924bf7180d60940e428a9166b51ce0f4":[8,0,3,0,0], -"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2bad52d2d4c0b7218c48897d2e69e156ba4":[8,0,3,0,4], -"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2badffa23e89f914b343e7811b01a8f756c":[8,0,3,0,2], -"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2bae334ea4bb6fd38968f6809b091120ad8":[8,0,3,0,1], -"classEntity.html#aa622a8d79153a90d0e3b9b992ca2d38b":[8,0,3,7], -"classEntity.html#aad34087e815ec2da644b86ae2357039b":[8,0,3,1], -"classEntity.html#acdf7c696ee39da0d8ebddb1976ea0abe":[8,0,3,6], -"classEntity.html#ad5ce9d4246498a5a2ffd163a2d38c98f":[8,0,3,4], -"classEntity.html#ae587a44fd803d7918a45dbfe531c962d":[8,0,3,2], -"classEntity.html#aea1c1568b4123d989c5310697030ad77":[8,0,3,8], -"classEntity.html#af153779f4ae16c3aa4d67a52f61333b7":[8,0,3,5], -"classEntity.html#af4415c165338eed191ee0cddf550732b":[8,0,3,9], -"classInputManager.html":[8,0,4], -"classInputManager.html#a6020878de8bb7046055cc40312e221e6":[8,0,4,4], -"classInputManager.html#a8c3240499dc0103d5a855c0d38127281":[8,0,4,2], -"classInputManager.html#ace0b942f00c773dedae4956e27636e89":[8,0,4,1], -"classInputManager.html#afee4ab4cebfdac2fe08cd01e1a1c1620":[8,0,4,3], -"classInteractionComponent.html":[8,0,5], -"classInteractionComponent.html#a88ef331d132baf4f9a4c24544077f9f2":[8,0,5,1], -"classInteractionComponent.html#ab6358a875d127206cb5f867f93e05368":[8,0,5,2], -"classInteractionComponent.html#af60fed077b6f92c22f2246c2464923ed":[8,0,5,0], -"classManager.html":[8,0,7], -"classManager.html#a4fe31f4dc1f7d613cf0ca9cafc2bb90a":[8,0,7,2], -"classManager.html#a6be095e14d18da37fdb2f8bdb4b48b5a":[8,0,7,0], -"classManager.html#aae16a3d76e450281012c526541ebeb5b":[8,0,7,1], -"classManager.html#ab76ac7deabcf2a203a227c228c27c02b":[8,0,7,4], -"classManager.html#adc5c66704fd1b0a9b9d38de8fdcb3748":[8,0,7,3], -"classMap.html":[8,0,8], -"classMap.html#a770f6b9997712224e994c284e8812cfc":[8,0,8,1], -"classMap.html#af8808c7a5677f1f9c71bf4ed74fc79c1":[8,0,8,0], -"classPickupComponent.html":[8,0,9], -"classPickupComponent.html#a4aa94e90ef16d51dab4486489a9cd3b5":[8,0,9,0], -"classSoundManager.html":[8,0,10], -"classSpriteComponent.html":[8,0,11], -"classSpriteComponent.html#a0af0ea0070ffc60b3b8d0e1c1f13b5f2":[8,0,11,3], -"classSpriteComponent.html#a2c2b0ac3fc6418bb475d257597905e66":[8,0,11,1], -"classSpriteComponent.html#a5987774516010e021703a02a37d0509b":[8,0,11,2], -"classSpriteComponent.html#af767b0da914fc583613626ac58505d58":[8,0,11,0], -"classTextureManager.html":[8,0,13], -"classTextureManager.html#a3304650a6b7304dbaa1afb164ed4c4e8":[8,0,13,3], -"classTextureManager.html#a8090211c196974905fd8a907829930f2":[8,0,13,1], -"classTextureManager.html#ab8a4eb67288539db37552b2c68217bb1":[8,0,13,0], -"classTextureManager.html#ac2bf6f97639eee824c45266472430ee0":[8,0,13,2], -"classTextures.html":[8,0,14], -"classTransformComponent.html":[8,0,15], -"classTransformComponent.html#ad3844c3c266a2cfd206f24f7a09c9014":[8,0,15,0], -"classes.html":[8,1], -"deprecated.html":[7], -"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[9,0,1], -"dir_d44c64559bbebec7f509842c48db8b23.html":[9,0,0], -"files.html":[9,0], -"functions.html":[8,2,0], -"functions_enum.html":[8,2,3], -"functions_func.html":[8,2,1], -"functions_vars.html":[8,2,2], +"AnimationHandler_8h_source.html":[10,0,0,0], +"BackgroundMusic_8h_source.html":[10,0,0,1], +"ColliderComponent_8h_source.html":[10,0,0,2], +"CollisionHandler_8cpp.html":[10,0,1,0], +"CollisionHandler_8h.html":[10,0,0,3], +"CollisionHandler_8h_source.html":[10,0,0,3], +"Component_8h_source.html":[10,0,0,4], +"ConfigLoader_8h_source.html":[10,0,0,5], +"Constants_8h_source.html":[10,0,0,6], +"DataComponent_8h_source.html":[10,0,0,7], +"Defines_8h_source.html":[10,0,0,8], +"Direction_8h_source.html":[10,0,0,9], +"ECS_8h_source.html":[10,0,0,10], +"Entity_8h_source.html":[10,0,0,11], +"EventManager_8h_source.html":[10,0,0,12], +"GameFactory_8h_source.html":[10,0,0,14], +"GameInternal_8h_source.html":[10,0,0,15], +"GameRegistryHelper_8h_source.html":[10,0,0,16], +"Game_8h_source.html":[10,0,0,13], +"HealthComponent_8h_source.html":[10,0,0,17], +"InputComponent_8h_source.html":[10,0,0,18], +"InputManager_8h_source.html":[10,0,0,19], +"InteractionComponent_8h_source.html":[10,0,0,20], +"InteractionEventdataStruct_8h_source.html":[10,0,0,21], +"InteractionListener_8h_source.html":[10,0,0,22], +"InteractionManager_8h_source.html":[10,0,0,23], +"Manager_8h_source.html":[10,0,0,24], +"Map_8h_source.html":[10,0,0,25], +"PickupComponent_8h_source.html":[10,0,0,26], +"PickupManager_8h_source.html":[10,0,0,27], +"PlayerComponent_8h_source.html":[10,0,0,28], +"ProjectileComponent_8h_source.html":[10,0,0,29], +"RenderManager_8h_source.html":[10,0,0,30], +"RenderObject_8h_source.html":[10,0,0,31], +"SoundEffects_8h_source.html":[10,0,0,32], +"SoundManager_8h_source.html":[10,0,0,33], +"SpriteComponent_8h_source.html":[10,0,0,34], +"StatEffectsComponent_8h_source.html":[10,0,0,35], +"TextureManager_8h_source.html":[10,0,0,36], +"Textures_8h_source.html":[10,0,0,37], +"TileComponent_8h_source.html":[10,0,0,38], +"TransformComponent_8cpp.html":[10,0,1,1], +"TransformComponent_8h_source.html":[10,0,0,39], +"VEGO_8h_source.html":[10,0,0,41], +"VEGO__Event_8h_source.html":[10,0,0,42], +"Vector2D_8h_source.html":[10,0,0,40], +"annotated.html":[9,0], +"classColliderComponent.html":[9,0,1], +"classColliderComponent.html#a29b7a4326327382ec473730a07f57b9a":[9,0,1,1], +"classColliderComponent.html#a334729b3c9b86cf7ee99b908f100a043":[9,0,1,2], +"classColliderComponent.html#a4438054178328402309cf72589f4f163":[9,0,1,3], +"classColliderComponent.html#a6ac04cfb252c5712d53aaa30603165e3":[9,0,1,5], +"classColliderComponent.html#a916be6c5f07a15fbd4f198be4c3c5a5f":[9,0,1,4], +"classColliderComponent.html#ab2b8fbba2f80f7b9bbf70504f8c3c670":[9,0,1,0], +"classCollisionHandler.html":[9,0,2], +"classCollisionHandler.html#a247c551454374148029c2e88a5c325d9":[9,0,2,0], +"classCollisionHandler.html#a7696ffbe45a8df61cc1f81f669214399":[9,0,2,2], +"classCollisionHandler.html#a79f12d91a9eb27153d63d1c3d82870b3":[9,0,2,1], +"classCollisionHandler.html#a9a52ac3eac33ef236ab0ced07f4763ce":[9,0,2,4], +"classCollisionHandler.html#aca14b15166c3bfbf26e9ff5a8895acd9":[9,0,2,3], +"classConfigLoader.html":[9,0,3], +"classDataComponent.html":[9,0,4], +"classDataComponent.html#a1dd53c6cb91e572090c2b6853881f8c9":[9,0,4,1], +"classDataComponent.html#a6e71b0bec578a208eb716676e3ccf667":[9,0,4,0], +"classEntity.html":[9,0,5], +"classEntity.html#a691dbe5f9ec930c27af2af0b97907a9e":[9,0,5,3], +"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2b":[9,0,5,0], +"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2ba46dccab75ce652352e52086601fdc294":[9,0,5,0,3], +"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2ba5262638eb9e1d1af560f3d0f9ad133e4":[9,0,5,0,5], +"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2ba924bf7180d60940e428a9166b51ce0f4":[9,0,5,0,0], +"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2bad52d2d4c0b7218c48897d2e69e156ba4":[9,0,5,0,4], +"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2badffa23e89f914b343e7811b01a8f756c":[9,0,5,0,2], +"classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2bae334ea4bb6fd38968f6809b091120ad8":[9,0,5,0,1], +"classEntity.html#aa622a8d79153a90d0e3b9b992ca2d38b":[9,0,5,7], +"classEntity.html#aad34087e815ec2da644b86ae2357039b":[9,0,5,1], +"classEntity.html#acdf7c696ee39da0d8ebddb1976ea0abe":[9,0,5,6], +"classEntity.html#ad5ce9d4246498a5a2ffd163a2d38c98f":[9,0,5,4], +"classEntity.html#ae587a44fd803d7918a45dbfe531c962d":[9,0,5,2], +"classEntity.html#aea1c1568b4123d989c5310697030ad77":[9,0,5,8], +"classEntity.html#af153779f4ae16c3aa4d67a52f61333b7":[9,0,5,5], +"classEntity.html#af4415c165338eed191ee0cddf550732b":[9,0,5,9], +"classInputManager.html":[9,0,6], +"classInputManager.html#a6020878de8bb7046055cc40312e221e6":[9,0,6,4], +"classInputManager.html#a8c3240499dc0103d5a855c0d38127281":[9,0,6,2], +"classInputManager.html#ace0b942f00c773dedae4956e27636e89":[9,0,6,1], +"classInputManager.html#afee4ab4cebfdac2fe08cd01e1a1c1620":[9,0,6,3], +"classInteractionComponent.html":[9,0,7], +"classInteractionComponent.html#a88ef331d132baf4f9a4c24544077f9f2":[9,0,7,1], +"classInteractionComponent.html#ab6358a875d127206cb5f867f93e05368":[9,0,7,2], +"classInteractionComponent.html#af60fed077b6f92c22f2246c2464923ed":[9,0,7,0], +"classManager.html":[9,0,9], +"classManager.html#a4fe31f4dc1f7d613cf0ca9cafc2bb90a":[9,0,9,2], +"classManager.html#a6be095e14d18da37fdb2f8bdb4b48b5a":[9,0,9,0], +"classManager.html#aae16a3d76e450281012c526541ebeb5b":[9,0,9,1], +"classManager.html#ab76ac7deabcf2a203a227c228c27c02b":[9,0,9,4], +"classManager.html#adc5c66704fd1b0a9b9d38de8fdcb3748":[9,0,9,3], +"classMap.html":[9,0,10], +"classMap.html#a770f6b9997712224e994c284e8812cfc":[9,0,10,1], +"classMap.html#af8808c7a5677f1f9c71bf4ed74fc79c1":[9,0,10,0], +"classPickupComponent.html":[9,0,11], +"classPickupComponent.html#a4aa94e90ef16d51dab4486489a9cd3b5":[9,0,11,0], +"classPickupManager.html":[9,0,12], +"classPickupManager.html#a9e9fab0945ccd93749351e40a926c7d7":[9,0,12,0], +"classSoundManager.html":[9,0,13], +"classSoundManager.html#a1065dec9d90a6fc8a363329a6e09ea42":[9,0,13,6], +"classSoundManager.html#a5071bf5e87394afdb1e4148227ffc3ea":[9,0,13,3], +"classSoundManager.html#a552795938033c602a28162fec202d20c":[9,0,13,1], +"classSoundManager.html#a6f38946a458843cfc08ebd9e26c648a5":[9,0,13,5], +"classSoundManager.html#a8031476c2ccd2dd1c40a39a102bc5844":[9,0,13,4], +"classSoundManager.html#a8717fc6cbf4cc3e863eda97deacad007":[9,0,13,0], +"classSoundManager.html#aaca970232ead83c6c107331f3d9ee0db":[9,0,13,7], +"classSoundManager.html#ac24dc06983603020f6556273d3c78df3":[9,0,13,8], +"classSoundManager.html#ac5ad38c2322c75ba5481c60c4c26e0e8":[9,0,13,9], +"classSoundManager.html#aea6a94c8b5456812c49115baa7534bf7":[9,0,13,2], +"classSoundManager.html#af99aee751f8300ba4041af004a97d319":[9,0,13,10], +"classSpriteComponent.html":[9,0,14], +"classSpriteComponent.html#a2c2b0ac3fc6418bb475d257597905e66":[9,0,14,1], +"classSpriteComponent.html#a2c60f55924b1d18b9e6fb530b5c5346a":[9,0,14,3], +"classSpriteComponent.html#a5987774516010e021703a02a37d0509b":[9,0,14,2], +"classSpriteComponent.html#aa4ebb6763d8b994f412dec66ecf58c59":[9,0,14,4], +"classSpriteComponent.html#af767b0da914fc583613626ac58505d58":[9,0,14,0], +"classStatEffectsComponent.html":[9,0,16], +"classStatEffectsComponent.html#a2d5edffc1abd620d39aa0315a1504b13":[9,0,16,0], +"classTextureManager.html":[9,0,17], +"classTextureManager.html#a3304650a6b7304dbaa1afb164ed4c4e8":[9,0,17,3], +"classTextureManager.html#a8090211c196974905fd8a907829930f2":[9,0,17,1], +"classTextureManager.html#ab8a4eb67288539db37552b2c68217bb1":[9,0,17,0], +"classTextureManager.html#ac2bf6f97639eee824c45266472430ee0":[9,0,17,2], +"classTextures.html":[9,0,18], +"classTransformComponent.html":[9,0,19], +"classTransformComponent.html#a636369521f092e7dc3f8dd34b8f8c68d":[9,0,19,0], +"classTransformComponent.html#aa6c585faf233543172f739fb306e6c74":[9,0,19,2], +"classTransformComponent.html#af69e09cf21f97b258bf9ab4aecb096d9":[9,0,19,1], +"classes.html":[9,1], +"deprecated.html":[8], +"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[10,0,1], +"dir_d44c64559bbebec7f509842c48db8b23.html":[10,0,0], +"files.html":[10,0], +"functions.html":[9,2,0], +"functions_enum.html":[9,2,3], +"functions_func.html":[9,2,1], +"functions_vars.html":[9,2,2], "index.html":[], "index.html":[0], -"md_docs_2md-pages_2entitiesAndComponents.html":[1], -"md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md1":[1,0], -"md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md2":[1,1], -"md_docs_2md-pages_2eventhandling.html":[2], -"md_docs_2md-pages_2inputhandling.html":[3], -"md_docs_2md-pages_2quickstart.html":[4], -"md_docs_2md-pages_2quickstart.html#autotoc_md7":[4,0], -"md_docs_2md-pages_2tilemaps.html":[5], +"md_docs_2md-pages_2config.html":[1], +"md_docs_2md-pages_2entitiesAndComponents.html":[2], +"md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md10":[2,1,2], +"md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md12":[2,1,3], +"md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md14":[2,1,4], +"md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md16":[2,1,5], +"md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md18":[2,1,6], +"md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md3":[2,0], +"md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md4":[2,1], +"md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md6":[2,1,0], +"md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md8":[2,1,1], +"md_docs_2md-pages_2eventhandling.html":[3], +"md_docs_2md-pages_2inputhandling.html":[4], +"md_docs_2md-pages_2quickstart.html":[5], +"md_docs_2md-pages_2quickstart.html#autotoc_md23":[5,0], +"md_docs_2md-pages_2tilemaps.html":[6], "pages.html":[], -"structInputManager_1_1InputAction.html":[8,0,4,0], -"structInteractionEventdataStruct.html":[8,0,6], -"structInteractionEventdataStruct.html#a2244f55fa7cff63d586d46d28d8a6ef3":[8,0,6,3], -"structInteractionEventdataStruct.html#a37aa07113eed65f8f5c19634092f1810":[8,0,6,0], -"structInteractionEventdataStruct.html#a49f1d3c0d48b7b26af7fba98ec53b402":[8,0,6,4], -"structInteractionEventdataStruct.html#a82dc8bba3309e5aca77629c8fd192fbc":[8,0,6,1], -"structInteractionEventdataStruct.html#aad4922791175a51c55987ecedba335c4":[8,0,6,2], -"structStatEffect.html":[8,0,12], -"structStatEffect.html#aca6d477c75029a2575d2e0a4f5794a43":[8,0,12,1], -"structStatEffect.html#af1f5099f0680329ff9ce3a9362391196":[8,0,12,0], -"todo.html":[6] +"structAnimation.html":[9,0,0], +"structInputManager_1_1InputAction.html":[9,0,6,0], +"structInteractionEventdataStruct.html":[9,0,8], +"structInteractionEventdataStruct.html#a2244f55fa7cff63d586d46d28d8a6ef3":[9,0,8,3], +"structInteractionEventdataStruct.html#a37aa07113eed65f8f5c19634092f1810":[9,0,8,0], +"structInteractionEventdataStruct.html#a49f1d3c0d48b7b26af7fba98ec53b402":[9,0,8,4], +"structInteractionEventdataStruct.html#a82dc8bba3309e5aca77629c8fd192fbc":[9,0,8,1], +"structInteractionEventdataStruct.html#aad4922791175a51c55987ecedba335c4":[9,0,8,2], +"structStatEffect.html":[9,0,15], +"structStatEffect.html#aca6d477c75029a2575d2e0a4f5794a43":[9,0,15,1], +"structStatEffect.html#af1f5099f0680329ff9ce3a9362391196":[9,0,15,0], +"todo.html":[7] }; diff --git a/pages.html b/pages.html index 31ff109..af2c5c8 100644 --- a/pages.html +++ b/pages.html @@ -124,13 +124,14 @@ $(function(){initNavTree('pages.html',''); initResizable(true); }); diff --git a/search/all_0.js b/search/all_0.js index 87f5a20..1af79fd 100644 --- a/search/all_0.js +++ b/search/all_0.js @@ -1,15 +1,19 @@ var searchData= [ - ['a_20new_20tileset_0',['Create a New Tileset',['../md_docs_2md-pages_2tilemaps.html#autotoc_md9',1,'']]], - ['actor_1',['actor',['../structInteractionEventdataStruct.html#a37aa07113eed65f8f5c19634092f1810',1,'InteractionEventdataStruct']]], - ['addbackgroundmusic_2',['addBackgroundMusic',['../classSoundManager.html#a8717fc6cbf4cc3e863eda97deacad007',1,'SoundManager']]], - ['addcomponent_3',['addComponent',['../classEntity.html#ae587a44fd803d7918a45dbfe531c962d',1,'Entity']]], - ['addentity_4',['addEntity',['../classManager.html#a6be095e14d18da37fdb2f8bdb4b48b5a',1,'Manager']]], - ['addsingletexture_5',['addSingleTexture',['../classTextureManager.html#ab8a4eb67288539db37552b2c68217bb1',1,'TextureManager']]], - ['addsoundeffects_6',['addSoundEffects',['../classSoundManager.html#a552795938033c602a28162fec202d20c',1,'SoundManager']]], - ['addtextures_7',['addTextures',['../classTextureManager.html#a8090211c196974905fd8a907829930f2',1,'TextureManager']]], - ['an_20environment_20using_20tiled_20and_20tmx_8',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]], - ['and_20components_9',['Entities and Components',['../md_docs_2md-pages_2entitiesAndComponents.html',1,'']]], - ['and_20tmx_10',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]], - ['and_20tools_11',['Installations and tools',['../md_docs_2md-pages_2quickstart.html#autotoc_md7',1,'']]] + ['a_20map_20using_20tiled_20and_20tmx_20and_20loading_20it_0',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]], + ['a_20new_20tileset_1',['Create a New Tileset',['../md_docs_2md-pages_2tilemaps.html#autotoc_md26',1,'']]], + ['actor_2',['actor',['../structInteractionEventdataStruct.html#a37aa07113eed65f8f5c19634092f1810',1,'InteractionEventdataStruct']]], + ['addbackgroundmusic_3',['addBackgroundMusic',['../classSoundManager.html#a8717fc6cbf4cc3e863eda97deacad007',1,'SoundManager']]], + ['addcomponent_4',['addComponent',['../classEntity.html#ae587a44fd803d7918a45dbfe531c962d',1,'Entity']]], + ['addeffect_5',['addEffect',['../classStatEffectsComponent.html#a2d5edffc1abd620d39aa0315a1504b13',1,'StatEffectsComponent']]], + ['addentity_6',['addEntity',['../classManager.html#a6be095e14d18da37fdb2f8bdb4b48b5a',1,'Manager']]], + ['addsingletexture_7',['addSingleTexture',['../classTextureManager.html#ab8a4eb67288539db37552b2c68217bb1',1,'TextureManager']]], + ['addsoundeffects_8',['addSoundEffects',['../classSoundManager.html#a552795938033c602a28162fec202d20c',1,'SoundManager']]], + ['addtextures_9',['addTextures',['../classTextureManager.html#a8090211c196974905fd8a907829930f2',1,'TextureManager']]], + ['and_20components_10',['Entities and Components',['../md_docs_2md-pages_2entitiesAndComponents.html',1,'']]], + ['and_20loading_20it_11',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]], + ['and_20tmx_20and_20loading_20it_12',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]], + ['and_20tools_13',['Installations and tools',['../md_docs_2md-pages_2quickstart.html#autotoc_md23',1,'']]], + ['animation_14',['Animation',['../structAnimation.html',1,'']]], + ['animation_3a_15',['How to spritesheet animation:',['../classSpriteComponent.html#autotoc_md0',1,'']]] ]; diff --git a/search/all_1.js b/search/all_1.js index 122c3a6..2f60233 100644 --- a/search/all_1.js +++ b/search/all_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['building_20an_20environment_20using_20tiled_20and_20tmx_0',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]] + ['building_20a_20map_20using_20tiled_20and_20tmx_20and_20loading_20it_0',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]] ]; diff --git a/search/all_10.js b/search/all_10.js index 516b021..0e42c7e 100644 --- a/search/all_10.js +++ b/search/all_10.js @@ -1,12 +1,21 @@ var searchData= [ - ['set_20up_20collision_0',['Set Up Collision',['../md_docs_2md-pages_2tilemaps.html#autotoc_md12',1,'']]], - ['setactivecontext_1',['setActiveContext',['../classInputManager.html#a6020878de8bb7046055cc40312e221e6',1,'InputManager']]], - ['setmusicvolume_2',['setMusicVolume',['../classSoundManager.html#ac5ad38c2322c75ba5481c60c4c26e0e8',1,'SoundManager']]], - ['setsoundvolume_3',['setSoundVolume',['../classSoundManager.html#af99aee751f8300ba4041af004a97d319',1,'SoundManager']]], - ['setting_20up_20the_20library_4',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]], - ['soundmanager_5',['SoundManager',['../classSoundManager.html',1,'']]], - ['spritecomponent_6',['SpriteComponent',['../classSpriteComponent.html',1,'SpriteComponent'],['../classSpriteComponent.html#af767b0da914fc583613626ac58505d58',1,'SpriteComponent::SpriteComponent(Textures texture, int zIndex)'],['../classSpriteComponent.html#a2c2b0ac3fc6418bb475d257597905e66',1,'SpriteComponent::SpriteComponent(Textures texture, int xOffset, int yOffset, int zIndex)'],['../classSpriteComponent.html#a5987774516010e021703a02a37d0509b',1,'SpriteComponent::SpriteComponent(const char *path, int xOffset, int yOffset, int zIndex)'],['../classSpriteComponent.html#a0af0ea0070ffc60b3b8d0e1c1f13b5f2',1,'SpriteComponent::SpriteComponent(Textures texture, bool isAnimated, std::map< std::string, std::unique_ptr< Animation > > *animationList, std::string defaultAnimation, int zIndex)']]], - ['stateffect_7',['StatEffect',['../structStatEffect.html',1,'']]], - ['strategy_8',['strategy',['../structInteractionEventdataStruct.html#aad4922791175a51c55987ecedba335c4',1,'InteractionEventdataStruct']]] + ['saving_20your_20work_0',['Saving your work',['../md_docs_2md-pages_2tilemaps.html#autotoc_md30',1,'']]], + ['set_20up_20collision_1',['Set Up Collision',['../md_docs_2md-pages_2tilemaps.html#autotoc_md29',1,'']]], + ['setactivecontext_2',['setActiveContext',['../classInputManager.html#a6020878de8bb7046055cc40312e221e6',1,'InputManager']]], + ['setentry_3',['setEntry',['../classDataComponent.html#a1dd53c6cb91e572090c2b6853881f8c9',1,'DataComponent']]], + ['setmusicvolume_4',['setMusicVolume',['../classSoundManager.html#ac5ad38c2322c75ba5481c60c4c26e0e8',1,'SoundManager']]], + ['setsoundvolume_5',['setSoundVolume',['../classSoundManager.html#af99aee751f8300ba4041af004a97d319',1,'SoundManager']]], + ['setting_20up_20the_20library_6',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]], + ['soundmanager_7',['SoundManager',['../classSoundManager.html',1,'']]], + ['sprite_20component_8',['@ref SpriteComponent "Sprite Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md16',1,'']]], + ['spritecomponent_9',['SpriteComponent',['../classSpriteComponent.html',1,'SpriteComponent'],['../classSpriteComponent.html#af767b0da914fc583613626ac58505d58',1,'SpriteComponent::SpriteComponent(Textures texture, int zIndex)'],['../classSpriteComponent.html#a2c2b0ac3fc6418bb475d257597905e66',1,'SpriteComponent::SpriteComponent(Textures texture, int xOffset, int yOffset, int zIndex)'],['../classSpriteComponent.html#a5987774516010e021703a02a37d0509b',1,'SpriteComponent::SpriteComponent(const char *path, int xOffset, int yOffset, int zIndex)'],['../classSpriteComponent.html#a2c60f55924b1d18b9e6fb530b5c5346a',1,'SpriteComponent::SpriteComponent(Textures texture, bool isAnimated, std::map< std::string, std::unique_ptr< Animation > > *animationList, std::string defaultAnimation, int zIndex, int xOffset=0, int yOffset=0)']]], + ['spritecomponent_20sprite_20component_10',['@ref SpriteComponent "Sprite Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md16',1,'']]], + ['spritesheet_20animation_3a_11',['How to spritesheet animation:',['../classSpriteComponent.html#autotoc_md0',1,'']]], + ['started_12',['Getting started',['../md_docs_2md-pages_2tilemaps.html#autotoc_md25',1,'']]], + ['stat_20effects_20component_13',['@ref StatEffectsComponent "Stat Effects Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md18',1,'']]], + ['stateffect_14',['StatEffect',['../structStatEffect.html',1,'']]], + ['stateffectscomponent_15',['StatEffectsComponent',['../classStatEffectsComponent.html',1,'']]], + ['stateffectscomponent_20stat_20effects_20component_16',['@ref StatEffectsComponent "Stat Effects Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md18',1,'']]], + ['strategy_17',['strategy',['../structInteractionEventdataStruct.html#aad4922791175a51c55987ecedba335c4',1,'InteractionEventdataStruct']]] ]; diff --git a/search/all_11.js b/search/all_11.js index 5a7e303..805afcd 100644 --- a/search/all_11.js +++ b/search/all_11.js @@ -4,15 +4,19 @@ var searchData= ['targetingreference_1',['targetingReference',['../structInteractionEventdataStruct.html#a49f1d3c0d48b7b26af7fba98ec53b402',1,'InteractionEventdataStruct']]], ['texturemanager_2',['TextureManager',['../classTextureManager.html',1,'']]], ['textures_3',['Textures',['../classTextures.html',1,'']]], - ['the_20library_4',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]], - ['the_20vego_20library_20documentation_5',['Welcome to the VEGO library documentation',['../index.html',1,'']]], - ['tiled_6',['Understand Layers in Tiled',['../md_docs_2md-pages_2tilemaps.html#autotoc_md11',1,'']]], - ['tiled_20and_20tmx_7',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]], - ['tileset_8',['Create a New Tileset',['../md_docs_2md-pages_2tilemaps.html#autotoc_md9',1,'']]], - ['tmx_9',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]], - ['to_20the_20vego_20library_20documentation_10',['Welcome to the VEGO library documentation',['../index.html',1,'']]], - ['todo_20list_11',['Todo List',['../todo.html',1,'']]], - ['tools_12',['Installations and tools',['../md_docs_2md-pages_2quickstart.html#autotoc_md7',1,'']]], - ['transformcomponent_13',['TransformComponent',['../classTransformComponent.html',1,'TransformComponent'],['../classTransformComponent.html#ad3844c3c266a2cfd206f24f7a09c9014',1,'TransformComponent::TransformComponent()']]], - ['transformcomponent_2ecpp_14',['TransformComponent.cpp',['../TransformComponent_8cpp.html',1,'']]] + ['the_20game_4',['the game',['../md_docs_2md-pages_2config.html',1,'Configuring the game'],['../md_docs_2md-pages_2tilemaps.html#autotoc_md31',1,'Loading your work into the game']]], + ['the_20library_5',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]], + ['the_20vego_20library_20documentation_6',['Welcome to the VEGO library documentation',['../index.html',1,'']]], + ['tiled_7',['Understand Layers in Tiled',['../md_docs_2md-pages_2tilemaps.html#autotoc_md28',1,'']]], + ['tiled_20and_20tmx_20and_20loading_20it_8',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]], + ['tileset_9',['Create a New Tileset',['../md_docs_2md-pages_2tilemaps.html#autotoc_md26',1,'']]], + ['tmx_20and_20loading_20it_10',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]], + ['to_20spritesheet_20animation_3a_11',['How to spritesheet animation:',['../classSpriteComponent.html#autotoc_md0',1,'']]], + ['to_20the_20vego_20library_20documentation_12',['Welcome to the VEGO library documentation',['../index.html',1,'']]], + ['todo_20list_13',['Todo List',['../todo.html',1,'']]], + ['tools_14',['Installations and tools',['../md_docs_2md-pages_2quickstart.html#autotoc_md23',1,'']]], + ['transform_20component_15',['@ref TransformComponent "Transform Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md14',1,'']]], + ['transformcomponent_16',['TransformComponent',['../classTransformComponent.html',1,'TransformComponent'],['../classTransformComponent.html#a636369521f092e7dc3f8dd34b8f8c68d',1,'TransformComponent::TransformComponent(float scale=1)'],['../classTransformComponent.html#af69e09cf21f97b258bf9ab4aecb096d9',1,'TransformComponent::TransformComponent(float x, float y, float scale=1)'],['../classTransformComponent.html#aa6c585faf233543172f739fb306e6c74',1,'TransformComponent::TransformComponent(float x, float y, int w, int h, float scale=1)']]], + ['transformcomponent_20transform_20component_17',['@ref TransformComponent "Transform Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md14',1,'']]], + ['transformcomponent_2ecpp_18',['TransformComponent.cpp',['../TransformComponent_8cpp.html',1,'']]] ]; diff --git a/search/all_12.js b/search/all_12.js index 041b8a1..aa706a2 100644 --- a/search/all_12.js +++ b/search/all_12.js @@ -1,8 +1,8 @@ var searchData= [ - ['understand_20layers_20in_20tiled_0',['Understand Layers in Tiled',['../md_docs_2md-pages_2tilemaps.html#autotoc_md11',1,'']]], - ['up_20collision_1',['Set Up Collision',['../md_docs_2md-pages_2tilemaps.html#autotoc_md12',1,'']]], + ['understand_20layers_20in_20tiled_0',['Understand Layers in Tiled',['../md_docs_2md-pages_2tilemaps.html#autotoc_md28',1,'']]], + ['up_20collision_1',['Set Up Collision',['../md_docs_2md-pages_2tilemaps.html#autotoc_md29',1,'']]], ['up_20the_20library_2',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]], ['update_3',['update',['../classEntity.html#af4415c165338eed191ee0cddf550732b',1,'Entity::update()'],['../classManager.html#ab76ac7deabcf2a203a227c228c27c02b',1,'Manager::update()']]], - ['using_20tiled_20and_20tmx_4',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]] + ['using_20tiled_20and_20tmx_20and_20loading_20it_4',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]] ]; diff --git a/search/all_14.js b/search/all_14.js index a6e52c7..057e0ab 100644 --- a/search/all_14.js +++ b/search/all_14.js @@ -1,4 +1,6 @@ var searchData= [ - ['welcome_20to_20the_20vego_20library_20documentation_0',['Welcome to the VEGO library documentation',['../index.html',1,'']]] + ['welcome_20to_20the_20vego_20library_20documentation_0',['Welcome to the VEGO library documentation',['../index.html',1,'']]], + ['work_1',['Saving your work',['../md_docs_2md-pages_2tilemaps.html#autotoc_md30',1,'']]], + ['work_20into_20the_20game_2',['Loading your work into the game',['../md_docs_2md-pages_2tilemaps.html#autotoc_md31',1,'']]] ]; diff --git a/search/all_15.js b/search/all_15.js index 8a78f47..7091079 100644 --- a/search/all_15.js +++ b/search/all_15.js @@ -1,4 +1,6 @@ var searchData= [ - ['your_20environment_0',['Draw Your Environment',['../md_docs_2md-pages_2tilemaps.html#autotoc_md10',1,'']]] + ['your_20environment_0',['Draw Your Environment',['../md_docs_2md-pages_2tilemaps.html#autotoc_md27',1,'']]], + ['your_20work_1',['Saving your work',['../md_docs_2md-pages_2tilemaps.html#autotoc_md30',1,'']]], + ['your_20work_20into_20the_20game_2',['Loading your work into the game',['../md_docs_2md-pages_2tilemaps.html#autotoc_md31',1,'']]] ]; diff --git a/search/all_2.js b/search/all_2.js index 8dbb925..82729ef 100644 --- a/search/all_2.js +++ b/search/all_2.js @@ -1,12 +1,17 @@ var searchData= [ - ['collidercomponent_0',['ColliderComponent',['../classColliderComponent.html',1,'ColliderComponent'],['../classColliderComponent.html#ab2b8fbba2f80f7b9bbf70504f8c3c670',1,'ColliderComponent::ColliderComponent(const char *tag)'],['../classColliderComponent.html#a29b7a4326327382ec473730a07f57b9a',1,'ColliderComponent::ColliderComponent(const char *tag, float hitboxScale)']]], - ['colliders_1',['COLLIDERS',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2badffa23e89f914b343e7811b01a8f756c',1,'Entity']]], - ['collision_2',['Set Up Collision',['../md_docs_2md-pages_2tilemaps.html#autotoc_md12',1,'']]], - ['collisionhandler_3',['CollisionHandler',['../classCollisionHandler.html',1,'']]], - ['collisionhandler_2ecpp_4',['CollisionHandler.cpp',['../CollisionHandler_8cpp.html',1,'']]], - ['collisionhandler_2eh_5',['CollisionHandler.h',['../CollisionHandler_8h.html',1,'']]], - ['components_6',['Components',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md2',1,'Components'],['../md_docs_2md-pages_2entitiesAndComponents.html',1,'Entities and Components']]], - ['configloader_7',['ConfigLoader',['../classConfigLoader.html',1,'']]], - ['create_20a_20new_20tileset_8',['Create a New Tileset',['../md_docs_2md-pages_2tilemaps.html#autotoc_md9',1,'']]] + ['collider_20component_0',['@ref ColliderComponent "Collider Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md6',1,'']]], + ['collidercomponent_1',['ColliderComponent',['../classColliderComponent.html',1,'ColliderComponent'],['../classColliderComponent.html#ab2b8fbba2f80f7b9bbf70504f8c3c670',1,'ColliderComponent::ColliderComponent(const char *tag)'],['../classColliderComponent.html#a29b7a4326327382ec473730a07f57b9a',1,'ColliderComponent::ColliderComponent(const char *tag, float hitboxScale)']]], + ['collidercomponent_20collider_20component_2',['@ref ColliderComponent "Collider Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md6',1,'']]], + ['colliders_3',['COLLIDERS',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2badffa23e89f914b343e7811b01a8f756c',1,'Entity']]], + ['collision_4',['Set Up Collision',['../md_docs_2md-pages_2tilemaps.html#autotoc_md29',1,'']]], + ['collisionhandler_5',['CollisionHandler',['../classCollisionHandler.html',1,'']]], + ['collisionhandler_2ecpp_6',['CollisionHandler.cpp',['../CollisionHandler_8cpp.html',1,'']]], + ['collisionhandler_2eh_7',['CollisionHandler.h',['../CollisionHandler_8h.html',1,'']]], + ['component_8',['Component',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md6',1,'@ref ColliderComponent "Collider Component"'],['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md8',1,'@ref DataComponent "Data Component"'],['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md10',1,'@ref InteractionComponent "Interaction Component"'],['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md12',1,'@ref PickupComponent "Pickup Component"'],['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md16',1,'@ref SpriteComponent "Sprite Component"'],['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md18',1,'@ref StatEffectsComponent "Stat Effects Component"'],['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md14',1,'@ref TransformComponent "Transform Component"']]], + ['components_9',['Components',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md4',1,'Components'],['../md_docs_2md-pages_2entitiesAndComponents.html',1,'Entities and Components']]], + ['configloader_10',['ConfigLoader',['../classConfigLoader.html',1,'']]], + ['configuring_20the_20game_11',['Configuring the game',['../md_docs_2md-pages_2config.html',1,'']]], + ['create_20a_20new_20tileset_12',['Create a New Tileset',['../md_docs_2md-pages_2tilemaps.html#autotoc_md26',1,'']]], + ['createpickupable_13',['createPickupable',['../classPickupManager.html#a9e9fab0945ccd93749351e40a926c7d7',1,'PickupManager']]] ]; diff --git a/search/all_3.js b/search/all_3.js index 8be23fc..95f4e8f 100644 --- a/search/all_3.js +++ b/search/all_3.js @@ -1,9 +1,12 @@ var searchData= [ ['data_0',['data',['../structInteractionEventdataStruct.html#a82dc8bba3309e5aca77629c8fd192fbc',1,'InteractionEventdataStruct']]], - ['deprecated_20list_1',['Deprecated List',['../deprecated.html',1,'']]], - ['destroy_2',['destroy',['../classEntity.html#a691dbe5f9ec930c27af2af0b97907a9e',1,'Entity']]], - ['documentation_3',['Welcome to the VEGO library documentation',['../index.html',1,'']]], - ['draw_20your_20environment_4',['Draw Your Environment',['../md_docs_2md-pages_2tilemaps.html#autotoc_md10',1,'']]], - ['duration_5',['duration',['../structStatEffect.html#af1f5099f0680329ff9ce3a9362391196',1,'StatEffect']]] + ['data_20component_1',['@ref DataComponent "Data Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md8',1,'']]], + ['datacomponent_2',['DataComponent',['../classDataComponent.html',1,'']]], + ['datacomponent_20data_20component_3',['@ref DataComponent "Data Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md8',1,'']]], + ['deprecated_20list_4',['Deprecated List',['../deprecated.html',1,'']]], + ['destroy_5',['destroy',['../classEntity.html#a691dbe5f9ec930c27af2af0b97907a9e',1,'Entity']]], + ['documentation_6',['Welcome to the VEGO library documentation',['../index.html',1,'']]], + ['draw_20your_20environment_7',['Draw Your Environment',['../md_docs_2md-pages_2tilemaps.html#autotoc_md27',1,'']]], + ['duration_8',['duration',['../structStatEffect.html#af1f5099f0680329ff9ce3a9362391196',1,'StatEffect']]] ]; diff --git a/search/all_4.js b/search/all_4.js index da93aca..465de08 100644 --- a/search/all_4.js +++ b/search/all_4.js @@ -1,8 +1,8 @@ var searchData= [ - ['entities_0',['Entities',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md1',1,'']]], - ['entities_20and_20components_1',['Entities and Components',['../md_docs_2md-pages_2entitiesAndComponents.html',1,'']]], - ['entity_2',['Entity',['../classEntity.html',1,'Entity'],['../classEntity.html#aad34087e815ec2da644b86ae2357039b',1,'Entity::Entity()']]], - ['environment_3',['Draw Your Environment',['../md_docs_2md-pages_2tilemaps.html#autotoc_md10',1,'']]], - ['environment_20using_20tiled_20and_20tmx_4',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]] + ['effects_20component_0',['@ref StatEffectsComponent "Stat Effects Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md18',1,'']]], + ['entities_1',['Entities',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md3',1,'']]], + ['entities_20and_20components_2',['Entities and Components',['../md_docs_2md-pages_2entitiesAndComponents.html',1,'']]], + ['entity_3',['Entity',['../classEntity.html',1,'Entity'],['../classEntity.html#aad34087e815ec2da644b86ae2357039b',1,'Entity::Entity()']]], + ['environment_4',['Draw Your Environment',['../md_docs_2md-pages_2tilemaps.html#autotoc_md27',1,'']]] ]; diff --git a/search/all_6.js b/search/all_6.js index 4b1cddc..aab816a 100644 --- a/search/all_6.js +++ b/search/all_6.js @@ -1,17 +1,20 @@ var searchData= [ - ['generatetiles_0',['generateTiles',['../classMap.html#a770f6b9997712224e994c284e8812cfc',1,'Map']]], - ['getactivecontext_1',['getActiveContext',['../classInputManager.html#a8c3240499dc0103d5a855c0d38127281',1,'InputManager']]], - ['getall_2',['getAll',['../classManager.html#aae16a3d76e450281012c526541ebeb5b',1,'Manager']]], - ['getanyintersection_3',['getAnyIntersection',['../classCollisionHandler.html#aca14b15166c3bfbf26e9ff5a8895acd9',1,'CollisionHandler::getAnyIntersection(Entity *entity, Vector2D posMod={}, std::initializer_list< Entity::GroupLabel > const &groupLabels={}, std::initializer_list< Entity * > const &excludedEntities={})'],['../classCollisionHandler.html#a247c551454374148029c2e88a5c325d9',1,'CollisionHandler::getAnyIntersection(Entity *entity, Vector2D posMod, std::initializer_list< Entity::GroupLabel > const &groupLabels, std::initializer_list< Entity * > const &excludedEntities)'],['../classCollisionHandler.html#a79f12d91a9eb27153d63d1c3d82870b3',1,'CollisionHandler::getAnyIntersection(Entity *entity, Vector2D posMod, std::initializer_list< Entity::GroupLabel > const &groupLabels, std::initializer_list< Entity * > const &excludedEntities)'],['../classCollisionHandler.html#a7696ffbe45a8df61cc1f81f669214399',1,'CollisionHandler::getAnyIntersection(Entity *entity, Vector2D posMod, std::initializer_list< Entity::GroupLabel > const &groupLabels, std::initializer_list< Entity * > const &excludedEntities)']]], - ['getcollider_4',['getCollider',['../classColliderComponent.html#a334729b3c9b86cf7ee99b908f100a043',1,'ColliderComponent']]], - ['getcomponent_5',['getComponent',['../classEntity.html#ad5ce9d4246498a5a2ffd163a2d38c98f',1,'Entity']]], - ['getcomponentaspointer_6',['getComponentAsPointer',['../classEntity.html#af153779f4ae16c3aa4d67a52f61333b7',1,'Entity']]], - ['getgame_7',['getGame',['../classManager.html#a4fe31f4dc1f7d613cf0ca9cafc2bb90a',1,'Manager']]], - ['getintersection_8',['getIntersection',['../classCollisionHandler.html#a9a52ac3eac33ef236ab0ced07f4763ce',1,'CollisionHandler']]], - ['getmanager_9',['getManager',['../classEntity.html#acdf7c696ee39da0d8ebddb1976ea0abe',1,'Entity']]], - ['getposition_10',['getPosition',['../classInteractionComponent.html#a88ef331d132baf4f9a4c24544077f9f2',1,'InteractionComponent']]], - ['gettag_11',['getTag',['../classColliderComponent.html#a4438054178328402309cf72589f4f163',1,'ColliderComponent']]], - ['grouplabel_12',['GroupLabel',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2b',1,'Entity']]], - ['guide_20for_20setting_20up_20the_20library_13',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]] + ['game_0',['game',['../md_docs_2md-pages_2config.html',1,'Configuring the game'],['../md_docs_2md-pages_2tilemaps.html#autotoc_md31',1,'Loading your work into the game']]], + ['generatetiles_1',['generateTiles',['../classMap.html#a770f6b9997712224e994c284e8812cfc',1,'Map']]], + ['getactivecontext_2',['getActiveContext',['../classInputManager.html#a8c3240499dc0103d5a855c0d38127281',1,'InputManager']]], + ['getall_3',['getAll',['../classManager.html#aae16a3d76e450281012c526541ebeb5b',1,'Manager']]], + ['getanyintersection_4',['getAnyIntersection',['../classCollisionHandler.html#aca14b15166c3bfbf26e9ff5a8895acd9',1,'CollisionHandler::getAnyIntersection(Entity *entity, Vector2D posMod={}, std::initializer_list< Entity::GroupLabel > const &groupLabels={}, std::initializer_list< Entity * > const &excludedEntities={})'],['../classCollisionHandler.html#a247c551454374148029c2e88a5c325d9',1,'CollisionHandler::getAnyIntersection(Entity *entity, Vector2D posMod, std::initializer_list< Entity::GroupLabel > const &groupLabels, std::initializer_list< Entity * > const &excludedEntities)'],['../classCollisionHandler.html#a79f12d91a9eb27153d63d1c3d82870b3',1,'CollisionHandler::getAnyIntersection(Entity *entity, Vector2D posMod, std::initializer_list< Entity::GroupLabel > const &groupLabels, std::initializer_list< Entity * > const &excludedEntities)'],['../classCollisionHandler.html#a7696ffbe45a8df61cc1f81f669214399',1,'CollisionHandler::getAnyIntersection(Entity *entity, Vector2D posMod, std::initializer_list< Entity::GroupLabel > const &groupLabels, std::initializer_list< Entity * > const &excludedEntities)']]], + ['getcollider_5',['getCollider',['../classColliderComponent.html#a334729b3c9b86cf7ee99b908f100a043',1,'ColliderComponent']]], + ['getcomponent_6',['getComponent',['../classEntity.html#ad5ce9d4246498a5a2ffd163a2d38c98f',1,'Entity']]], + ['getcomponentaspointer_7',['getComponentAsPointer',['../classEntity.html#af153779f4ae16c3aa4d67a52f61333b7',1,'Entity']]], + ['getentry_8',['getEntry',['../classDataComponent.html#a6e71b0bec578a208eb716676e3ccf667',1,'DataComponent']]], + ['getgame_9',['getGame',['../classManager.html#a4fe31f4dc1f7d613cf0ca9cafc2bb90a',1,'Manager']]], + ['getintersection_10',['getIntersection',['../classCollisionHandler.html#a9a52ac3eac33ef236ab0ced07f4763ce',1,'CollisionHandler']]], + ['getmanager_11',['getManager',['../classEntity.html#acdf7c696ee39da0d8ebddb1976ea0abe',1,'Entity']]], + ['getposition_12',['getPosition',['../classInteractionComponent.html#a88ef331d132baf4f9a4c24544077f9f2',1,'InteractionComponent']]], + ['gettag_13',['getTag',['../classColliderComponent.html#a4438054178328402309cf72589f4f163',1,'ColliderComponent']]], + ['getting_20started_14',['Getting started',['../md_docs_2md-pages_2tilemaps.html#autotoc_md25',1,'']]], + ['grouplabel_15',['GroupLabel',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2b',1,'Entity']]], + ['guide_20for_20setting_20up_20the_20library_16',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]] ]; diff --git a/search/all_7.js b/search/all_7.js index e16ebf4..a47e3d3 100644 --- a/search/all_7.js +++ b/search/all_7.js @@ -2,5 +2,6 @@ var searchData= [ ['hascollision_0',['hasCollision',['../classColliderComponent.html#a916be6c5f07a15fbd4f198be4c3c5a5f',1,'ColliderComponent']]], ['hascomponent_1',['hasComponent',['../classEntity.html#aa622a8d79153a90d0e3b9b992ca2d38b',1,'Entity']]], - ['hearts_2',['HEARTS',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2bad52d2d4c0b7218c48897d2e69e156ba4',1,'Entity']]] + ['hearts_2',['HEARTS',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2bad52d2d4c0b7218c48897d2e69e156ba4',1,'Entity']]], + ['how_20to_20spritesheet_20animation_3a_3',['How to spritesheet animation:',['../classSpriteComponent.html#autotoc_md0',1,'']]] ]; diff --git a/search/all_8.js b/search/all_8.js index 066e702..72ecf9c 100644 --- a/search/all_8.js +++ b/search/all_8.js @@ -1,13 +1,17 @@ var searchData= [ - ['in_20tiled_0',['Understand Layers in Tiled',['../md_docs_2md-pages_2tilemaps.html#autotoc_md11',1,'']]], + ['in_20tiled_0',['Understand Layers in Tiled',['../md_docs_2md-pages_2tilemaps.html#autotoc_md28',1,'']]], ['input_20management_1',['Input Management',['../md_docs_2md-pages_2inputhandling.html',1,'']]], ['inputaction_2',['InputAction',['../structInputManager_1_1InputAction.html',1,'InputManager']]], ['inputmanager_3',['InputManager',['../classInputManager.html',1,'']]], - ['installations_20and_20tools_4',['Installations and tools',['../md_docs_2md-pages_2quickstart.html#autotoc_md7',1,'']]], + ['installations_20and_20tools_4',['Installations and tools',['../md_docs_2md-pages_2quickstart.html#autotoc_md23',1,'']]], ['interact_5',['interact',['../classInteractionComponent.html#ab6358a875d127206cb5f867f93e05368',1,'InteractionComponent']]], - ['interactioncomponent_6',['InteractionComponent',['../classInteractionComponent.html',1,'InteractionComponent'],['../classInteractionComponent.html#af60fed077b6f92c22f2246c2464923ed',1,'InteractionComponent::InteractionComponent()']]], - ['interactioneventdatastruct_7',['InteractionEventdataStruct',['../structInteractionEventdataStruct.html',1,'']]], - ['interactions_8',['Interactions',['../md_docs_2md-pages_2eventhandling.html',1,'']]], - ['isactive_9',['isActive',['../classEntity.html#aea1c1568b4123d989c5310697030ad77',1,'Entity']]] + ['interaction_20component_6',['@ref InteractionComponent "Interaction Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md10',1,'']]], + ['interactioncomponent_7',['InteractionComponent',['../classInteractionComponent.html',1,'InteractionComponent'],['../classInteractionComponent.html#af60fed077b6f92c22f2246c2464923ed',1,'InteractionComponent::InteractionComponent()']]], + ['interactioncomponent_20interaction_20component_8',['@ref InteractionComponent "Interaction Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md10',1,'']]], + ['interactioneventdatastruct_9',['InteractionEventdataStruct',['../structInteractionEventdataStruct.html',1,'']]], + ['interactions_10',['Interactions',['../md_docs_2md-pages_2eventhandling.html',1,'']]], + ['into_20the_20game_11',['Loading your work into the game',['../md_docs_2md-pages_2tilemaps.html#autotoc_md31',1,'']]], + ['isactive_12',['isActive',['../classEntity.html#aea1c1568b4123d989c5310697030ad77',1,'Entity']]], + ['it_13',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]] ]; diff --git a/search/all_a.js b/search/all_a.js index 847a220..0a72f95 100644 --- a/search/all_a.js +++ b/search/all_a.js @@ -1,9 +1,11 @@ var searchData= [ - ['layers_20in_20tiled_0',['Understand Layers in Tiled',['../md_docs_2md-pages_2tilemaps.html#autotoc_md11',1,'']]], + ['layers_20in_20tiled_0',['Understand Layers in Tiled',['../md_docs_2md-pages_2tilemaps.html#autotoc_md28',1,'']]], ['library_1',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]], ['library_20documentation_2',['Welcome to the VEGO library documentation',['../index.html',1,'']]], ['list_3',['List',['../deprecated.html',1,'Deprecated List'],['../todo.html',1,'Todo List']]], - ['loadmaptiletexture_4',['loadMapTileTexture',['../classTextureManager.html#ac2bf6f97639eee824c45266472430ee0',1,'TextureManager']]], - ['loadtexture_5',['loadTexture',['../classTextureManager.html#a3304650a6b7304dbaa1afb164ed4c4e8',1,'TextureManager']]] + ['loading_20it_4',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]], + ['loading_20your_20work_20into_20the_20game_5',['Loading your work into the game',['../md_docs_2md-pages_2tilemaps.html#autotoc_md31',1,'']]], + ['loadmaptiletexture_6',['loadMapTileTexture',['../classTextureManager.html#ac2bf6f97639eee824c45266472430ee0',1,'TextureManager']]], + ['loadtexture_7',['loadTexture',['../classTextureManager.html#a3304650a6b7304dbaa1afb164ed4c4e8',1,'TextureManager']]] ]; diff --git a/search/all_b.js b/search/all_b.js index 7ad526a..2555b4b 100644 --- a/search/all_b.js +++ b/search/all_b.js @@ -3,5 +3,6 @@ var searchData= ['management_0',['Input Management',['../md_docs_2md-pages_2inputhandling.html',1,'']]], ['manager_1',['Manager',['../classManager.html',1,'']]], ['map_2',['Map',['../classMap.html',1,'Map'],['../classMap.html#af8808c7a5677f1f9c71bf4ed74fc79c1',1,'Map::Map()']]], - ['maptiles_3',['MAPTILES',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2ba924bf7180d60940e428a9166b51ce0f4',1,'Entity']]] + ['map_20using_20tiled_20and_20tmx_20and_20loading_20it_3',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]], + ['maptiles_4',['MAPTILES',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2ba924bf7180d60940e428a9166b51ce0f4',1,'Entity']]] ]; diff --git a/search/all_c.js b/search/all_c.js index 38eb27c..90ac7fe 100644 --- a/search/all_c.js +++ b/search/all_c.js @@ -1,4 +1,4 @@ var searchData= [ - ['new_20tileset_0',['Create a New Tileset',['../md_docs_2md-pages_2tilemaps.html#autotoc_md9',1,'']]] + ['new_20tileset_0',['Create a New Tileset',['../md_docs_2md-pages_2tilemaps.html#autotoc_md26',1,'']]] ]; diff --git a/search/all_d.js b/search/all_d.js index fcc4128..6c4156d 100644 --- a/search/all_d.js +++ b/search/all_d.js @@ -2,10 +2,14 @@ var searchData= [ ['pausemusic_0',['pauseMusic',['../classSoundManager.html#a5071bf5e87394afdb1e4148227ffc3ea',1,'SoundManager']]], ['pausesound_1',['pauseSound',['../classSoundManager.html#a8031476c2ccd2dd1c40a39a102bc5844',1,'SoundManager']]], - ['pickupcomponent_2',['PickupComponent',['../classPickupComponent.html',1,'PickupComponent'],['../classPickupComponent.html#a4aa94e90ef16d51dab4486489a9cd3b5',1,'PickupComponent::PickupComponent()']]], - ['players_3',['PLAYERS',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2bae334ea4bb6fd38968f6809b091120ad8',1,'Entity']]], - ['playmusic_4',['playMusic',['../classSoundManager.html#a6f38946a458843cfc08ebd9e26c648a5',1,'SoundManager']]], - ['playsound_5',['playSound',['../classSoundManager.html#a1065dec9d90a6fc8a363329a6e09ea42',1,'SoundManager']]], - ['powerups_6',['POWERUPS',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2ba5262638eb9e1d1af560f3d0f9ad133e4',1,'Entity']]], - ['projectile_7',['PROJECTILE',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2ba46dccab75ce652352e52086601fdc294',1,'Entity']]] + ['pickup_20component_2',['@ref PickupComponent "Pickup Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md12',1,'']]], + ['pickupcomponent_3',['PickupComponent',['../classPickupComponent.html',1,'PickupComponent'],['../classPickupComponent.html#a4aa94e90ef16d51dab4486489a9cd3b5',1,'PickupComponent::PickupComponent()']]], + ['pickupcomponent_20pickup_20component_4',['@ref PickupComponent "Pickup Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md12',1,'']]], + ['pickupmanager_5',['PickupManager',['../classPickupManager.html',1,'']]], + ['playanimation_6',['playAnimation',['../classSpriteComponent.html#aa4ebb6763d8b994f412dec66ecf58c59',1,'SpriteComponent']]], + ['players_7',['PLAYERS',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2bae334ea4bb6fd38968f6809b091120ad8',1,'Entity']]], + ['playmusic_8',['playMusic',['../classSoundManager.html#a6f38946a458843cfc08ebd9e26c648a5',1,'SoundManager']]], + ['playsound_9',['playSound',['../classSoundManager.html#a1065dec9d90a6fc8a363329a6e09ea42',1,'SoundManager']]], + ['powerups_10',['POWERUPS',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2ba5262638eb9e1d1af560f3d0f9ad133e4',1,'Entity']]], + ['projectile_11',['PROJECTILE',['../classEntity.html#a9449a7a0ad2c9ae5ee85ef2401382f2ba46dccab75ce652352e52086601fdc294',1,'Entity']]] ]; diff --git a/search/all_f.js b/search/all_f.js index 53e6e1f..0168d7a 100644 --- a/search/all_f.js +++ b/search/all_f.js @@ -1,9 +1,16 @@ var searchData= [ - ['refresh_0',['refresh',['../classManager.html#adc5c66704fd1b0a9b9d38de8fdcb3748',1,'Manager']]], - ['registeraction_1',['registerAction',['../classInputManager.html#afee4ab4cebfdac2fe08cd01e1a1c1620',1,'InputManager']]], - ['removecollision_2',['removeCollision',['../classColliderComponent.html#a6ac04cfb252c5712d53aaa30603165e3',1,'ColliderComponent']]], - ['resetfunction_3',['resetFunction',['../structStatEffect.html#aca6d477c75029a2575d2e0a4f5794a43',1,'StatEffect']]], - ['restartmusic_4',['restartMusic',['../classSoundManager.html#aaca970232ead83c6c107331f3d9ee0db',1,'SoundManager']]], - ['restartsound_5',['restartSound',['../classSoundManager.html#ac24dc06983603020f6556273d3c78df3',1,'SoundManager']]] + ['ref_20collidercomponent_20collider_20component_0',['@ref ColliderComponent "Collider Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md6',1,'']]], + ['ref_20datacomponent_20data_20component_1',['@ref DataComponent "Data Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md8',1,'']]], + ['ref_20interactioncomponent_20interaction_20component_2',['@ref InteractionComponent "Interaction Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md10',1,'']]], + ['ref_20pickupcomponent_20pickup_20component_3',['@ref PickupComponent "Pickup Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md12',1,'']]], + ['ref_20spritecomponent_20sprite_20component_4',['@ref SpriteComponent "Sprite Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md16',1,'']]], + ['ref_20stateffectscomponent_20stat_20effects_20component_5',['@ref StatEffectsComponent "Stat Effects Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md18',1,'']]], + ['ref_20transformcomponent_20transform_20component_6',['@ref TransformComponent "Transform Component"',['../md_docs_2md-pages_2entitiesAndComponents.html#autotoc_md14',1,'']]], + ['refresh_7',['refresh',['../classManager.html#adc5c66704fd1b0a9b9d38de8fdcb3748',1,'Manager']]], + ['registeraction_8',['registerAction',['../classInputManager.html#afee4ab4cebfdac2fe08cd01e1a1c1620',1,'InputManager']]], + ['removecollision_9',['removeCollision',['../classColliderComponent.html#a6ac04cfb252c5712d53aaa30603165e3',1,'ColliderComponent']]], + ['resetfunction_10',['resetFunction',['../structStatEffect.html#aca6d477c75029a2575d2e0a4f5794a43',1,'StatEffect']]], + ['restartmusic_11',['restartMusic',['../classSoundManager.html#aaca970232ead83c6c107331f3d9ee0db',1,'SoundManager']]], + ['restartsound_12',['restartSound',['../classSoundManager.html#ac24dc06983603020f6556273d3c78df3',1,'SoundManager']]] ]; diff --git a/search/classes_0.js b/search/classes_0.js index 7f82ed7..b5ec340 100644 --- a/search/classes_0.js +++ b/search/classes_0.js @@ -1,6 +1,4 @@ var searchData= [ - ['collidercomponent_0',['ColliderComponent',['../classColliderComponent.html',1,'']]], - ['collisionhandler_1',['CollisionHandler',['../classCollisionHandler.html',1,'']]], - ['configloader_2',['ConfigLoader',['../classConfigLoader.html',1,'']]] + ['animation_0',['Animation',['../structAnimation.html',1,'']]] ]; diff --git a/search/classes_1.js b/search/classes_1.js index a4a04fa..7f82ed7 100644 --- a/search/classes_1.js +++ b/search/classes_1.js @@ -1,4 +1,6 @@ var searchData= [ - ['entity_0',['Entity',['../classEntity.html',1,'']]] + ['collidercomponent_0',['ColliderComponent',['../classColliderComponent.html',1,'']]], + ['collisionhandler_1',['CollisionHandler',['../classCollisionHandler.html',1,'']]], + ['configloader_2',['ConfigLoader',['../classConfigLoader.html',1,'']]] ]; diff --git a/search/classes_2.js b/search/classes_2.js index 3a8f64d..d13689b 100644 --- a/search/classes_2.js +++ b/search/classes_2.js @@ -1,7 +1,4 @@ var searchData= [ - ['inputaction_0',['InputAction',['../structInputManager_1_1InputAction.html',1,'InputManager']]], - ['inputmanager_1',['InputManager',['../classInputManager.html',1,'']]], - ['interactioncomponent_2',['InteractionComponent',['../classInteractionComponent.html',1,'']]], - ['interactioneventdatastruct_3',['InteractionEventdataStruct',['../structInteractionEventdataStruct.html',1,'']]] + ['datacomponent_0',['DataComponent',['../classDataComponent.html',1,'']]] ]; diff --git a/search/classes_3.js b/search/classes_3.js index 3c303e7..a4a04fa 100644 --- a/search/classes_3.js +++ b/search/classes_3.js @@ -1,5 +1,4 @@ var searchData= [ - ['manager_0',['Manager',['../classManager.html',1,'']]], - ['map_1',['Map',['../classMap.html',1,'']]] + ['entity_0',['Entity',['../classEntity.html',1,'']]] ]; diff --git a/search/classes_4.js b/search/classes_4.js index 1e420b5..3a8f64d 100644 --- a/search/classes_4.js +++ b/search/classes_4.js @@ -1,4 +1,7 @@ var searchData= [ - ['pickupcomponent_0',['PickupComponent',['../classPickupComponent.html',1,'']]] + ['inputaction_0',['InputAction',['../structInputManager_1_1InputAction.html',1,'InputManager']]], + ['inputmanager_1',['InputManager',['../classInputManager.html',1,'']]], + ['interactioncomponent_2',['InteractionComponent',['../classInteractionComponent.html',1,'']]], + ['interactioneventdatastruct_3',['InteractionEventdataStruct',['../structInteractionEventdataStruct.html',1,'']]] ]; diff --git a/search/classes_5.js b/search/classes_5.js index 53ed90f..3c303e7 100644 --- a/search/classes_5.js +++ b/search/classes_5.js @@ -1,6 +1,5 @@ var searchData= [ - ['soundmanager_0',['SoundManager',['../classSoundManager.html',1,'']]], - ['spritecomponent_1',['SpriteComponent',['../classSpriteComponent.html',1,'']]], - ['stateffect_2',['StatEffect',['../structStatEffect.html',1,'']]] + ['manager_0',['Manager',['../classManager.html',1,'']]], + ['map_1',['Map',['../classMap.html',1,'']]] ]; diff --git a/search/classes_6.js b/search/classes_6.js index 37ff17b..f7c04c9 100644 --- a/search/classes_6.js +++ b/search/classes_6.js @@ -1,6 +1,5 @@ var searchData= [ - ['texturemanager_0',['TextureManager',['../classTextureManager.html',1,'']]], - ['textures_1',['Textures',['../classTextures.html',1,'']]], - ['transformcomponent_2',['TransformComponent',['../classTransformComponent.html',1,'']]] + ['pickupcomponent_0',['PickupComponent',['../classPickupComponent.html',1,'']]], + ['pickupmanager_1',['PickupManager',['../classPickupManager.html',1,'']]] ]; diff --git a/search/classes_7.js b/search/classes_7.js index 5680da5..a4efdd6 100644 --- a/search/classes_7.js +++ b/search/classes_7.js @@ -1,4 +1,7 @@ var searchData= [ - ['zindexcomparator_0',['ZIndexComparator',['../structRenderObject_1_1ZIndexComparator.html',1,'RenderObject']]] + ['soundmanager_0',['SoundManager',['../classSoundManager.html',1,'']]], + ['spritecomponent_1',['SpriteComponent',['../classSpriteComponent.html',1,'']]], + ['stateffect_2',['StatEffect',['../structStatEffect.html',1,'']]], + ['stateffectscomponent_3',['StatEffectsComponent',['../classStatEffectsComponent.html',1,'']]] ]; diff --git a/search/classes_8.js b/search/classes_8.js new file mode 100644 index 0000000..37ff17b --- /dev/null +++ b/search/classes_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['texturemanager_0',['TextureManager',['../classTextureManager.html',1,'']]], + ['textures_1',['Textures',['../classTextures.html',1,'']]], + ['transformcomponent_2',['TransformComponent',['../classTransformComponent.html',1,'']]] +]; diff --git a/search/classes_9.js b/search/classes_9.js new file mode 100644 index 0000000..5680da5 --- /dev/null +++ b/search/classes_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['zindexcomparator_0',['ZIndexComparator',['../structRenderObject_1_1ZIndexComparator.html',1,'RenderObject']]] +]; diff --git a/search/functions_0.js b/search/functions_0.js index 8d2424b..77c054e 100644 --- a/search/functions_0.js +++ b/search/functions_0.js @@ -2,8 +2,9 @@ var searchData= [ ['addbackgroundmusic_0',['addBackgroundMusic',['../classSoundManager.html#a8717fc6cbf4cc3e863eda97deacad007',1,'SoundManager']]], ['addcomponent_1',['addComponent',['../classEntity.html#ae587a44fd803d7918a45dbfe531c962d',1,'Entity']]], - ['addentity_2',['addEntity',['../classManager.html#a6be095e14d18da37fdb2f8bdb4b48b5a',1,'Manager']]], - ['addsingletexture_3',['addSingleTexture',['../classTextureManager.html#ab8a4eb67288539db37552b2c68217bb1',1,'TextureManager']]], - ['addsoundeffects_4',['addSoundEffects',['../classSoundManager.html#a552795938033c602a28162fec202d20c',1,'SoundManager']]], - ['addtextures_5',['addTextures',['../classTextureManager.html#a8090211c196974905fd8a907829930f2',1,'TextureManager']]] + ['addeffect_2',['addEffect',['../classStatEffectsComponent.html#a2d5edffc1abd620d39aa0315a1504b13',1,'StatEffectsComponent']]], + ['addentity_3',['addEntity',['../classManager.html#a6be095e14d18da37fdb2f8bdb4b48b5a',1,'Manager']]], + ['addsingletexture_4',['addSingleTexture',['../classTextureManager.html#ab8a4eb67288539db37552b2c68217bb1',1,'TextureManager']]], + ['addsoundeffects_5',['addSoundEffects',['../classSoundManager.html#a552795938033c602a28162fec202d20c',1,'SoundManager']]], + ['addtextures_6',['addTextures',['../classTextureManager.html#a8090211c196974905fd8a907829930f2',1,'TextureManager']]] ]; diff --git a/search/functions_1.js b/search/functions_1.js index da6f52a..3131ccd 100644 --- a/search/functions_1.js +++ b/search/functions_1.js @@ -1,4 +1,5 @@ var searchData= [ - ['collidercomponent_0',['ColliderComponent',['../classColliderComponent.html#ab2b8fbba2f80f7b9bbf70504f8c3c670',1,'ColliderComponent::ColliderComponent(const char *tag)'],['../classColliderComponent.html#a29b7a4326327382ec473730a07f57b9a',1,'ColliderComponent::ColliderComponent(const char *tag, float hitboxScale)']]] + ['collidercomponent_0',['ColliderComponent',['../classColliderComponent.html#ab2b8fbba2f80f7b9bbf70504f8c3c670',1,'ColliderComponent::ColliderComponent(const char *tag)'],['../classColliderComponent.html#a29b7a4326327382ec473730a07f57b9a',1,'ColliderComponent::ColliderComponent(const char *tag, float hitboxScale)']]], + ['createpickupable_1',['createPickupable',['../classPickupManager.html#a9e9fab0945ccd93749351e40a926c7d7',1,'PickupManager']]] ]; diff --git a/search/functions_5.js b/search/functions_5.js index 244f0a9..2d63cbd 100644 --- a/search/functions_5.js +++ b/search/functions_5.js @@ -7,9 +7,10 @@ var searchData= ['getcollider_4',['getCollider',['../classColliderComponent.html#a334729b3c9b86cf7ee99b908f100a043',1,'ColliderComponent']]], ['getcomponent_5',['getComponent',['../classEntity.html#ad5ce9d4246498a5a2ffd163a2d38c98f',1,'Entity']]], ['getcomponentaspointer_6',['getComponentAsPointer',['../classEntity.html#af153779f4ae16c3aa4d67a52f61333b7',1,'Entity']]], - ['getgame_7',['getGame',['../classManager.html#a4fe31f4dc1f7d613cf0ca9cafc2bb90a',1,'Manager']]], - ['getintersection_8',['getIntersection',['../classCollisionHandler.html#a9a52ac3eac33ef236ab0ced07f4763ce',1,'CollisionHandler']]], - ['getmanager_9',['getManager',['../classEntity.html#acdf7c696ee39da0d8ebddb1976ea0abe',1,'Entity']]], - ['getposition_10',['getPosition',['../classInteractionComponent.html#a88ef331d132baf4f9a4c24544077f9f2',1,'InteractionComponent']]], - ['gettag_11',['getTag',['../classColliderComponent.html#a4438054178328402309cf72589f4f163',1,'ColliderComponent']]] + ['getentry_7',['getEntry',['../classDataComponent.html#a6e71b0bec578a208eb716676e3ccf667',1,'DataComponent']]], + ['getgame_8',['getGame',['../classManager.html#a4fe31f4dc1f7d613cf0ca9cafc2bb90a',1,'Manager']]], + ['getintersection_9',['getIntersection',['../classCollisionHandler.html#a9a52ac3eac33ef236ab0ced07f4763ce',1,'CollisionHandler']]], + ['getmanager_10',['getManager',['../classEntity.html#acdf7c696ee39da0d8ebddb1976ea0abe',1,'Entity']]], + ['getposition_11',['getPosition',['../classInteractionComponent.html#a88ef331d132baf4f9a4c24544077f9f2',1,'InteractionComponent']]], + ['gettag_12',['getTag',['../classColliderComponent.html#a4438054178328402309cf72589f4f163',1,'ColliderComponent']]] ]; diff --git a/search/functions_a.js b/search/functions_a.js index 6d07430..204a9c4 100644 --- a/search/functions_a.js +++ b/search/functions_a.js @@ -3,6 +3,7 @@ var searchData= ['pausemusic_0',['pauseMusic',['../classSoundManager.html#a5071bf5e87394afdb1e4148227ffc3ea',1,'SoundManager']]], ['pausesound_1',['pauseSound',['../classSoundManager.html#a8031476c2ccd2dd1c40a39a102bc5844',1,'SoundManager']]], ['pickupcomponent_2',['PickupComponent',['../classPickupComponent.html#a4aa94e90ef16d51dab4486489a9cd3b5',1,'PickupComponent']]], - ['playmusic_3',['playMusic',['../classSoundManager.html#a6f38946a458843cfc08ebd9e26c648a5',1,'SoundManager']]], - ['playsound_4',['playSound',['../classSoundManager.html#a1065dec9d90a6fc8a363329a6e09ea42',1,'SoundManager']]] + ['playanimation_3',['playAnimation',['../classSpriteComponent.html#aa4ebb6763d8b994f412dec66ecf58c59',1,'SpriteComponent']]], + ['playmusic_4',['playMusic',['../classSoundManager.html#a6f38946a458843cfc08ebd9e26c648a5',1,'SoundManager']]], + ['playsound_5',['playSound',['../classSoundManager.html#a1065dec9d90a6fc8a363329a6e09ea42',1,'SoundManager']]] ]; diff --git a/search/functions_c.js b/search/functions_c.js index 0f07019..43c1748 100644 --- a/search/functions_c.js +++ b/search/functions_c.js @@ -1,7 +1,8 @@ var searchData= [ ['setactivecontext_0',['setActiveContext',['../classInputManager.html#a6020878de8bb7046055cc40312e221e6',1,'InputManager']]], - ['setmusicvolume_1',['setMusicVolume',['../classSoundManager.html#ac5ad38c2322c75ba5481c60c4c26e0e8',1,'SoundManager']]], - ['setsoundvolume_2',['setSoundVolume',['../classSoundManager.html#af99aee751f8300ba4041af004a97d319',1,'SoundManager']]], - ['spritecomponent_3',['SpriteComponent',['../classSpriteComponent.html#af767b0da914fc583613626ac58505d58',1,'SpriteComponent::SpriteComponent(Textures texture, int zIndex)'],['../classSpriteComponent.html#a2c2b0ac3fc6418bb475d257597905e66',1,'SpriteComponent::SpriteComponent(Textures texture, int xOffset, int yOffset, int zIndex)'],['../classSpriteComponent.html#a5987774516010e021703a02a37d0509b',1,'SpriteComponent::SpriteComponent(const char *path, int xOffset, int yOffset, int zIndex)'],['../classSpriteComponent.html#a0af0ea0070ffc60b3b8d0e1c1f13b5f2',1,'SpriteComponent::SpriteComponent(Textures texture, bool isAnimated, std::map< std::string, std::unique_ptr< Animation > > *animationList, std::string defaultAnimation, int zIndex)']]] + ['setentry_1',['setEntry',['../classDataComponent.html#a1dd53c6cb91e572090c2b6853881f8c9',1,'DataComponent']]], + ['setmusicvolume_2',['setMusicVolume',['../classSoundManager.html#ac5ad38c2322c75ba5481c60c4c26e0e8',1,'SoundManager']]], + ['setsoundvolume_3',['setSoundVolume',['../classSoundManager.html#af99aee751f8300ba4041af004a97d319',1,'SoundManager']]], + ['spritecomponent_4',['SpriteComponent',['../classSpriteComponent.html#af767b0da914fc583613626ac58505d58',1,'SpriteComponent::SpriteComponent(Textures texture, int zIndex)'],['../classSpriteComponent.html#a2c2b0ac3fc6418bb475d257597905e66',1,'SpriteComponent::SpriteComponent(Textures texture, int xOffset, int yOffset, int zIndex)'],['../classSpriteComponent.html#a5987774516010e021703a02a37d0509b',1,'SpriteComponent::SpriteComponent(const char *path, int xOffset, int yOffset, int zIndex)'],['../classSpriteComponent.html#a2c60f55924b1d18b9e6fb530b5c5346a',1,'SpriteComponent::SpriteComponent(Textures texture, bool isAnimated, std::map< std::string, std::unique_ptr< Animation > > *animationList, std::string defaultAnimation, int zIndex, int xOffset=0, int yOffset=0)']]] ]; diff --git a/search/functions_d.js b/search/functions_d.js index b554af0..513ae9f 100644 --- a/search/functions_d.js +++ b/search/functions_d.js @@ -1,4 +1,4 @@ var searchData= [ - ['transformcomponent_0',['TransformComponent',['../classTransformComponent.html#ad3844c3c266a2cfd206f24f7a09c9014',1,'TransformComponent']]] + ['transformcomponent_0',['TransformComponent',['../classTransformComponent.html#a636369521f092e7dc3f8dd34b8f8c68d',1,'TransformComponent::TransformComponent(float scale=1)'],['../classTransformComponent.html#af69e09cf21f97b258bf9ab4aecb096d9',1,'TransformComponent::TransformComponent(float x, float y, float scale=1)'],['../classTransformComponent.html#aa6c585faf233543172f739fb306e6c74',1,'TransformComponent::TransformComponent(float x, float y, int w, int h, float scale=1)']]] ]; diff --git a/search/pages_0.js b/search/pages_0.js index bae57fc..2e5ef0a 100644 --- a/search/pages_0.js +++ b/search/pages_0.js @@ -1,6 +1,7 @@ var searchData= [ - ['an_20environment_20using_20tiled_20and_20tmx_0',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]], + ['a_20map_20using_20tiled_20and_20tmx_20and_20loading_20it_0',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]], ['and_20components_1',['Entities and Components',['../md_docs_2md-pages_2entitiesAndComponents.html',1,'']]], - ['and_20tmx_2',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]] + ['and_20loading_20it_2',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]], + ['and_20tmx_20and_20loading_20it_3',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]] ]; diff --git a/search/pages_1.js b/search/pages_1.js index 122c3a6..2f60233 100644 --- a/search/pages_1.js +++ b/search/pages_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['building_20an_20environment_20using_20tiled_20and_20tmx_0',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]] + ['building_20a_20map_20using_20tiled_20and_20tmx_20and_20loading_20it_0',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]] ]; diff --git a/search/pages_2.js b/search/pages_2.js index ebe8673..acc68a4 100644 --- a/search/pages_2.js +++ b/search/pages_2.js @@ -1,4 +1,5 @@ var searchData= [ - ['components_0',['Entities and Components',['../md_docs_2md-pages_2entitiesAndComponents.html',1,'']]] + ['components_0',['Entities and Components',['../md_docs_2md-pages_2entitiesAndComponents.html',1,'']]], + ['configuring_20the_20game_1',['Configuring the game',['../md_docs_2md-pages_2config.html',1,'']]] ]; diff --git a/search/pages_4.js b/search/pages_4.js index 05131e2..c114fc8 100644 --- a/search/pages_4.js +++ b/search/pages_4.js @@ -1,5 +1,4 @@ var searchData= [ - ['entities_20and_20components_0',['Entities and Components',['../md_docs_2md-pages_2entitiesAndComponents.html',1,'']]], - ['environment_20using_20tiled_20and_20tmx_1',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]] + ['entities_20and_20components_0',['Entities and Components',['../md_docs_2md-pages_2entitiesAndComponents.html',1,'']]] ]; diff --git a/search/pages_6.js b/search/pages_6.js index 30b8349..c3bbd43 100644 --- a/search/pages_6.js +++ b/search/pages_6.js @@ -1,4 +1,5 @@ var searchData= [ - ['guide_20for_20setting_20up_20the_20library_0',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]] + ['game_0',['Configuring the game',['../md_docs_2md-pages_2config.html',1,'']]], + ['guide_20for_20setting_20up_20the_20library_1',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]] ]; diff --git a/search/pages_7.js b/search/pages_7.js index a85a70d..c128856 100644 --- a/search/pages_7.js +++ b/search/pages_7.js @@ -1,5 +1,6 @@ var searchData= [ ['input_20management_0',['Input Management',['../md_docs_2md-pages_2inputhandling.html',1,'']]], - ['interactions_1',['Interactions',['../md_docs_2md-pages_2eventhandling.html',1,'']]] + ['interactions_1',['Interactions',['../md_docs_2md-pages_2eventhandling.html',1,'']]], + ['it_2',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]] ]; diff --git a/search/pages_8.js b/search/pages_8.js index f31bcdb..188a178 100644 --- a/search/pages_8.js +++ b/search/pages_8.js @@ -2,5 +2,6 @@ var searchData= [ ['library_0',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]], ['library_20documentation_1',['Welcome to the VEGO library documentation',['../index.html',1,'']]], - ['list_2',['List',['../deprecated.html',1,'Deprecated List'],['../todo.html',1,'Todo List']]] + ['list_2',['List',['../deprecated.html',1,'Deprecated List'],['../todo.html',1,'Todo List']]], + ['loading_20it_3',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]] ]; diff --git a/search/pages_9.js b/search/pages_9.js index 2c0cde4..5d6c8b9 100644 --- a/search/pages_9.js +++ b/search/pages_9.js @@ -1,4 +1,5 @@ var searchData= [ - ['management_0',['Input Management',['../md_docs_2md-pages_2inputhandling.html',1,'']]] + ['management_0',['Input Management',['../md_docs_2md-pages_2inputhandling.html',1,'']]], + ['map_20using_20tiled_20and_20tmx_20and_20loading_20it_1',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]] ]; diff --git a/search/pages_c.js b/search/pages_c.js index 7bcffa3..b1ed321 100644 --- a/search/pages_c.js +++ b/search/pages_c.js @@ -1,9 +1,10 @@ var searchData= [ - ['the_20library_0',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]], - ['the_20vego_20library_20documentation_1',['Welcome to the VEGO library documentation',['../index.html',1,'']]], - ['tiled_20and_20tmx_2',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]], - ['tmx_3',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]], - ['to_20the_20vego_20library_20documentation_4',['Welcome to the VEGO library documentation',['../index.html',1,'']]], - ['todo_20list_5',['Todo List',['../todo.html',1,'']]] + ['the_20game_0',['Configuring the game',['../md_docs_2md-pages_2config.html',1,'']]], + ['the_20library_1',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]], + ['the_20vego_20library_20documentation_2',['Welcome to the VEGO library documentation',['../index.html',1,'']]], + ['tiled_20and_20tmx_20and_20loading_20it_3',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]], + ['tmx_20and_20loading_20it_4',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]], + ['to_20the_20vego_20library_20documentation_5',['Welcome to the VEGO library documentation',['../index.html',1,'']]], + ['todo_20list_6',['Todo List',['../todo.html',1,'']]] ]; diff --git a/search/pages_d.js b/search/pages_d.js index 5dc396b..c854656 100644 --- a/search/pages_d.js +++ b/search/pages_d.js @@ -1,5 +1,5 @@ var searchData= [ ['up_20the_20library_0',['Quickstart guide for setting up the library',['../md_docs_2md-pages_2quickstart.html',1,'']]], - ['using_20tiled_20and_20tmx_1',['Building an environment using Tiled and tmx',['../md_docs_2md-pages_2tilemaps.html',1,'']]] + ['using_20tiled_20and_20tmx_20and_20loading_20it_1',['Building a map using Tiled and tmx and loading it',['../md_docs_2md-pages_2tilemaps.html',1,'']]] ]; diff --git a/search/searchdata.js b/search/searchdata.js index bfdae8e..974e05c 100644 --- a/search/searchdata.js +++ b/search/searchdata.js @@ -1,7 +1,7 @@ var indexSectionsWithContent = { 0: "abcdefghiklmnpqrstuvwyz", - 1: "ceimpstz", + 1: "acdeimpstz", 2: "ct", 3: "acdefghilmprstu", 4: "adrst", diff --git a/structAnimation-members.html b/structAnimation-members.html new file mode 100644 index 0000000..e9a59c9 --- /dev/null +++ b/structAnimation-members.html @@ -0,0 +1,136 @@ + + + + + + + + + VEGO-Engine: Member List + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + +
    +
    VEGO-Engine +  0.1 +
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Animation Member List
    +
    +
    + +

    This is the complete list of members for Animation, including all inherited members.

    +
    +
    + + + + diff --git a/structAnimation.html b/structAnimation.html new file mode 100644 index 0000000..00de797 --- /dev/null +++ b/structAnimation.html @@ -0,0 +1,155 @@ + + + + + + + + + VEGO-Engine: Animation Struct Reference + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + + +
    +
    VEGO-Engine +  0.1 +
    +
    +
    + + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    Animation Struct Reference
    +
    +
    + +

    Animation struct to hold animation data. + More...

    + +

    #include <AnimationHandler.h>

    +

    Detailed Description

    +

    Animation struct to hold animation data.

    +
    Parameters
    + + + + +
    indexThe row in the sprite sheet (every 32 pixels on the y-axis is a new row)
    framesThe number of frames in the animation
    speedThe speed of the animation in milliseconds
    +
    +
    +

    The documentation for this struct was generated from the following file: +
    +
    + + + +