diff --git a/docs/build/html/reference/render_window.html b/docs/build/html/reference/render_window.html
new file mode 100644
index 0000000..d32646b
--- /dev/null
+++ b/docs/build/html/reference/render_window.html
@@ -0,0 +1,427 @@
+
+
+
+
+
+
+
+
+
RenderWindow - Kraken Engine
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+RenderWindow
+
+-
+class RenderWindow
+The renderer context.
+
+
Warning
+
This class must be a singleton.
+
+
+
Public Functions
+
+-
+RenderWindow(const std::string &title = "Kraken", int scale = 1, bool fullscreen = false)
+Create a window.
+
+- Parameters:
+
+title – The title of the window.
+scale – The scale of the window.
+fullscreen – Whether to make the window fullscreen.
+
+
+
+
+
+
+-
+void cls(SDL_Color color = {0, 0, 0, 255})
+Clear the screen.
+
+- Parameters:
+color – The color to clear the screen.
+
+
+
+
+
+-
+void flip()
+Flip the render frame buffer.
+
+
+
+-
+void blit(const std::shared_ptr<Texture> &texture, Rect crop, Rect rect)
+Draw a texture using rects.
+
+- Parameters:
+
+texture – The texture to draw.
+crop – The rectangle to draw from.
+rect – The rectangle to draw to.
+
+
+
+
+
+
+-
+void blit(const std::shared_ptr<Texture> &texture, const math::Vec2 &position)
+Draw a texture to a position.
+
+- Parameters:
+-
+
+
+
+
+
+-
+void blitEx(const std::shared_ptr<Texture> &texture, Rect crop, Rect rect, double angle = 0.0, bool flipX = false, bool flipY = false)
+Draw a texture using rects.
+
+- Parameters:
+
+texture – The texture to draw.
+crop – The rectangle to draw from.
+rect – The rectangle to draw to.
+angle – The angle to draw the texture.
+flipX – Whether to flip the texture on the x-axis.
+flipY – Whether to flip the texture on the y-axis.
+
+
+
+
+
+
+-
+void blitEx(const std::shared_ptr<Texture> &texture, const math::Vec2 &position, double angle = 0.0, bool flipX = false, bool flipY = false)
+Draw a texture to a position.
+
+- Parameters:
+
+texture – The texture to draw.
+position – The position to draw at.
+angle – The angle to draw the texture.
+flipX – Whether to flip the texture on the x-axis.
+flipY – Whether to flip the texture on the y-axis.
+
+
+
+
+
+
+-
+inline SDL_Renderer *getRenderer()
+Get the window renderer.
+
+- Returns:
+The window renderer.
+
+
+
+
+
+-
+const std::vector<KN_Event> &getEvents()
+Get user events.
+
+- Returns:
+The user events.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/reference/sprite.html b/docs/build/html/reference/sprite.html
new file mode 100644
index 0000000..f886047
--- /dev/null
+++ b/docs/build/html/reference/sprite.html
@@ -0,0 +1,327 @@
+
+
+
+
+
+
+
+
+
Sprite - Kraken Engine
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contents
+
+
+
+
+
+
+ Expand
+
+
+
+
+
+ Light mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dark mode
+
+
+
+
+
+
+ Auto light/dark mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+Sprite
+
+-
+class Sprite
+A container for a sprite.
+
+
Note
+
This class is intended to be inherited from.
+
+
+
Public Functions
+
+-
+Sprite(RenderWindow &window, std::shared_ptr<Texture> texture)
+Create a sprite.
+
+- Parameters:
+-
+
+
+
+
+
+-
+std::shared_ptr<Texture> getTexture() const
+Get the sprite’s texture pointer.
+
+- Returns:
+The sprite’s texture pointer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/reference/texture.html b/docs/build/html/reference/texture.html
new file mode 100644
index 0000000..24e5810
--- /dev/null
+++ b/docs/build/html/reference/texture.html
@@ -0,0 +1,413 @@
+
+
+
+
+
+
+
+
+
Texture - Kraken Engine
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contents
+
+
+
+
+
+
+ Expand
+
+
+
+
+
+ Light mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dark mode
+
+
+
+
+
+
+ Auto light/dark mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+Texture
+
+-
+class Texture
+A texture container.
+
+
Public Functions
+
+-
+explicit Texture(SDL_Texture *texture)
+Create a texture.
+
+
+
+
+
+
Note
+
This function is not meant to be used by the user.
+
+
+- Parameters:
+texture – The SDL texture.
+
+
+
+
+
+-
+math::Vec2 getSize() const
+Get the size of the texture.
+
+- Returns:
+The size of the texture.
+
+
+
+
+
+-
+Rect getRect() const
+Get the rect of the texture.
+
+- Returns:
+The rect of the texture.
+
+
+
+
+
+-
+SDL_Texture *getSDLTexture() const
+Get the SDL texture.
+
+
Note
+
This function is not meant to be used by the user.
+
+
+- Returns:
+The SDL texture.
+
+
+
+
+
+-
+void setSize(const math::Vec2 &size)
+Set the size of the texture rect.
+
+- Parameters:
+size – The size of the texture rect.
+
+
+
+
+
+-
+void scaleBy(float factor)
+Scale the texture rect by a factor.
+
+- Parameters:
+factor – The factor to scale by.
+
+
+
+
+
+-
+void fitWidth(float width)
+Fit the texture rect to a width while maintaining the aspect ratio.
+
+- Parameters:
+width – The width to fit to.
+
+
+
+
+
+-
+void fitHeight(float height)
+Fit the texture rect to a height while maintaining the aspect ratio.
+
+- Parameters:
+height – The height to fit to.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/reference/texture_cache.html b/docs/build/html/reference/texture_cache.html
new file mode 100644
index 0000000..6c96f04
--- /dev/null
+++ b/docs/build/html/reference/texture_cache.html
@@ -0,0 +1,424 @@
+
+
+
+
+
+
+
+
+
TextureCache - Kraken Engine
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contents
+
+
+
+
+
+
+ Expand
+
+
+
+
+
+ Light mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dark mode
+
+
+
+
+
+
+ Auto light/dark mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+TextureCache
+
+-
+class TextureCache
+A class to cache textures.
+
+
Warning
+
This class must be a singleton.
+
+
+
Public Functions
+
+-
+inline explicit TextureCache(RenderWindow &window)
+Instantiate the texture cache.
+
+- Parameters:
+window – The renderer context.
+
+
+
+
+
+-
+inline ~TextureCache()
+Unload the texture cache.
+
+
+
+-
+std::shared_ptr<Texture> load(const std::string &name, const std::string &path)
+Load a texture file.
+
+- Parameters:
+-
+
+- Returns:
+The texture pointer.
+
+
+
+
+
+-
+std::shared_ptr<Texture> create(const std::string &name, const math::Vec2 &size, SDL_Color color)
+Create a solid texture.
+
+- Parameters:
+
+name – The name of the texture.
+size – The size of the texture.
+color – The color of the texture.
+
+
+- Returns:
+The texture pointer.
+
+
+
+
+
+-
+std::shared_ptr<Texture> move(const std::string &name, std::shared_ptr<Texture> texture)
+Move an existing texture.
+
+
Note
+
This function is recommended for loading fonts.
+
+
+- Parameters:
+-
+
+- Returns:
+The texture pointer.
+
+
+
+
+
+-
+const std::map<std::string, std::shared_ptr<Texture>> &getCache() const
+Get the const reference to the texture cache.
+
+- Returns:
+The texture cache.
+
+
+
+
+
+-
+void unload(const std::string &name)
+Unload a texture from cache.
+
+- Parameters:
+name – The name of the texture.
+
+
+
+
+
+-
+void unloadAll()
+Unload all textures from cache.
+
+
+
+-
+std::shared_ptr<Texture> getTexture(const std::string &name) const
+Get a texture pointer from cache.
+
+- Parameters:
+name – The name of the texture.
+
+- Returns:
+The texture pointer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/reference/tile_map.html b/docs/build/html/reference/tile_map.html
new file mode 100644
index 0000000..5e8eac6
--- /dev/null
+++ b/docs/build/html/reference/tile_map.html
@@ -0,0 +1,346 @@
+
+
+
+
+
+
+
+
+
TileMap - Kraken Engine
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contents
+
+
+
+
+
+
+ Expand
+
+
+
+
+
+ Light mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dark mode
+
+
+
+
+
+
+ Auto light/dark mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+TileMap
+
+-
+class TileMap
+A class that represents a tile map.
+This class reads from TMX files generated by the Tiled map editor.
+
+
Public Functions
+
+-
+TileMap(RenderWindow &window, TextureCache &textureCache, const std::string &tmxPath)
+Constructs a tile map from a TMX file.
+
+- Parameters:
+
+window – The window to render to.
+textureCache – The texture cache to use.
+tmxPath – The path to the TMX file.
+
+
+
+
+
+
+-
+void drawTiles()
+Draw the tile map.
+
+
+
+-
+void drawObjects()
+Draw the objects in the tile map.
+
+
+
+-
+void drawAll()
+Draw the tile map and objects.
+
+
+
+-
+const std::vector<Object> &getObjects() const
+Get the tile map objects vector.
+
+- Returns:
+The tile map objects vector.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/reference/time.html b/docs/build/html/reference/time.html
new file mode 100644
index 0000000..c6c6949
--- /dev/null
+++ b/docs/build/html/reference/time.html
@@ -0,0 +1,307 @@
+
+
+
+
+
+
+
+
+
time - Kraken Engine
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contents
+
+
+
+
+
+
+ Expand
+
+
+
+
+
+ Light mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dark mode
+
+
+
+
+
+
+ Auto light/dark mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+
+
+
+
+
+
+time
+
+-
+class Clock
+A class to keep track of time.
+
+
Warning
+
This class must be a singleton.
+
+
+
Public Functions
+
+-
+double tick(int frameRate = 360)
+Get the delta time between frames.
+
+- Parameters:
+frameRate – The frame rate to calculate the delta time.
+
+- Returns:
+The delta time between frames.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/build/html/search.html b/docs/build/html/search.html
index 79de3cf..60a084f 100644
--- a/docs/build/html/search.html
+++ b/docs/build/html/search.html
@@ -154,7 +154,18 @@
- Installation
- Getting Started
-- API Reference
diff --git a/docs/build/html/searchindex.js b/docs/build/html/searchindex.js
index d683f83..4c22825 100644
--- a/docs/build/html/searchindex.js
+++ b/docs/build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["getting_started", "index", "installation", "reference/ref_main"], "filenames": ["getting_started.rst", "index.rst", "installation.rst", "reference/ref_main.rst"], "titles": ["Getting Started", "Introduction", "Installation", "API Reference"], "terms": {"after": 0, "follow": [0, 2], "instal": [0, 1], "guid": 0, "you": [0, 2], "ar": [0, 2], "readi": [0, 2], "your": 0, "first": 0, "kraken": [0, 1, 2], "engin": [0, 1, 2], "program": 0, "includ": [0, 1], "krakenengin": 0, "hpp": 0, "const": 0, "kn": 0, "math": 0, "vec2": 0, "screen_siz": 0, "800": 0, "600": 0, "int": 0, "main": 0, "renderwindow": 0, "window": [0, 2], "time": 0, "clock": 0, "bool": 0, "done": 0, "fals": 0, "while": 0, "doubl": 0, "deltatim": 0, "tick": 0, "60": 0, "auto": 0, "event": 0, "getev": 0, "type": 0, "kn_quit": 0, "true": 0, "cl": 0, "flip": 0, "return": 0, "exit_success": 0, "thi": [0, 2], "code": 0, "open": 0, "close": 0, "when": 0, "user": 0, "press": 0, "": 0, "x": 0, "button": 0, "It": 0, "also": 0, "clear": 0, "screen": 0, "everi": 0, "frame": 0, "buffer": 0, "The": 0, "function": [0, 1], "elaps": 0, "sinc": 0, "last": 0, "call": 0, "second": 0, "paramet": 0, "i": [0, 2], "cap": 0, "rate": 0, "extend": 1, "sdl2": 1, "easi": 1, "us": [1, 2], "featur": 1, "like": 1, "textur": 1, "cach": 1, "collis": 1, "logic": 1, "futur": 1, "plan": 1, "implement": 1, "handi": 1, "mathemat": 1, "pathfind": 1, "raycast": 1, "built": [1, 2], "physic": 1, "get": 1, "start": 1, "hello": 1, "world": 1, "api": 1, "refer": 1, "now": 2, "ha": 2, "onli": 2, "been": 2, "test": 2, "confirm": 2, "work": 2, "system": 2, "10": 2, "11": 2, "sever": 2, "linux": 2, "distribut": 2, "still": 2, "develop": 2, "product": 2, "mean": 2, "aren": 2, "t": 2, "ani": 2, "pre": 2, "binari": 2, "yet": 2, "so": 2, "have": 2, "build": 2, "yourself": 2, "instruct": 2, "come": 2, "soon": 2}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"get": 0, "start": 0, "hello": 0, "world": 0, "introduct": 1, "tabl": 1, "content": 1, "instal": 2, "api": 3, "refer": 3}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"Getting Started": [[0, "getting-started"]], "Hello World": [[0, "hello-world"]], "Introduction": [[1, "introduction"]], "Table of Contents": [[1, "table-of-contents"]], "Installation": [[2, "installation"]], "API Reference": [[3, "api-reference"]]}, "indexentries": {}})
\ No newline at end of file
+Search.setIndex({"docnames": ["getting_started", "index", "installation", "reference/draw", "reference/font", "reference/input", "reference/math", "reference/rect", "reference/ref_main", "reference/render_window", "reference/sprite", "reference/texture", "reference/texture_cache", "reference/tile_map", "reference/time"], "filenames": ["getting_started.rst", "index.rst", "installation.rst", "reference/draw.rst", "reference/font.rst", "reference/input.rst", "reference/math.rst", "reference/rect.rst", "reference/ref_main.rst", "reference/render_window.rst", "reference/sprite.rst", "reference/texture.rst", "reference/texture_cache.rst", "reference/tile_map.rst", "reference/time.rst"], "titles": ["Getting Started", "Introduction", "Installation", "draw", "Font", "input", "math", "Rect", "API Reference", "RenderWindow", "Sprite", "Texture", "TextureCache", "TileMap", "time"], "terms": {"after": 0, "follow": [0, 2], "instal": [0, 1], "guid": 0, "you": [0, 2], "ar": [0, 2], "readi": [0, 2], "your": 0, "first": [0, 6], "kraken": [0, 1, 2, 9], "engin": [0, 1, 2], "program": 0, "includ": [0, 1], "krakenengin": 0, "hpp": 0, "const": [0, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13], "kn": [0, 3, 5, 6], "math": [0, 1, 5, 7, 8, 9, 11, 12], "vec2": [0, 5, 6, 7, 9, 11, 12], "screen_siz": [0, 7], "800": 0, "600": 0, "int": [0, 3, 4, 5, 9, 14], "main": 0, "renderwindow": [0, 1, 3, 4, 8, 10, 12, 13], "window": [0, 2, 3, 4, 9, 10, 12, 13], "time": [0, 1, 6, 8], "clock": [0, 14], "bool": [0, 4, 7, 9], "done": 0, "fals": [0, 9], "while": [0, 11], "doubl": [0, 9, 14], "deltatim": 0, "tick": [0, 14], "60": 0, "auto": 0, "event": [0, 9], "getev": [0, 9], "type": 0, "kn_quit": 0, "true": 0, "cl": [0, 9], "flip": [0, 9], "return": [0, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14], "exit_success": 0, "thi": [0, 2, 9, 10, 11, 12, 13, 14], "code": 0, "open": 0, "close": 0, "when": 0, "user": [0, 9, 11], "press": [0, 5], "": [0, 10], "x": [0, 7, 9], "button": [0, 5], "It": 0, "also": 0, "clear": [0, 9], "screen": [0, 9], "everi": 0, "frame": [0, 9, 14], "buffer": [0, 9], "The": [0, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14], "function": [0, 1, 4, 6, 7, 9, 10, 11, 12, 13, 14], "elaps": 0, "sinc": 0, "last": 0, "call": 0, "second": [0, 6], "paramet": [0, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14], "i": [0, 2, 5, 10, 11, 12], "cap": 0, "rate": [0, 14], "extend": 1, "sdl2": 1, "easi": 1, "us": [1, 2, 9, 11, 13], "featur": 1, "like": 1, "textur": [1, 4, 8, 9, 10, 12, 13], "cach": [1, 12, 13], "collis": 1, "logic": 1, "futur": 1, "plan": 1, "implement": 1, "handi": 1, "mathemat": 1, "pathfind": 1, "raycast": 1, "built": [1, 2], "physic": 1, "get": [1, 5, 6, 7, 9, 10, 11, 12, 13, 14], "start": 1, "hello": 1, "world": 1, "api": 1, "refer": [1, 3, 12], "draw": [1, 8, 9, 13], "font": [1, 8, 12], "input": [1, 8], "rect": [1, 3, 8, 9, 11], "sprite": [1, 8], "texturecach": [1, 8, 11, 13], "tilemap": [1, 8], "now": 2, "ha": 2, "onli": 2, "been": 2, "test": 2, "confirm": 2, "work": 2, "system": 2, "10": 2, "11": 2, "sever": 2, "linux": 2, "distribut": 2, "still": 2, "develop": 2, "product": 2, "mean": 2, "aren": 2, "t": [2, 6], "ani": 2, "pre": 2, "binari": 2, "yet": 2, "so": 2, "have": 2, "build": 2, "yourself": 2, "instruct": 2, "come": 2, "soon": 2, "void": [3, 6, 7, 9, 11, 12, 13], "sdl_color": [3, 4, 9, 12], "color": [3, 4, 9, 12], "thick": 3, "0": [3, 4, 9], "rectangl": [3, 7, 9], "If": 3, "remain": 3, "fill": 3, "instanc": 3, "class": [4, 6, 7, 9, 10, 11, 12, 13, 14], "A": [4, 6, 7, 10, 11, 12, 13, 14], "render": [4, 9, 10, 12, 13], "text": 4, "public": [4, 6, 7, 9, 10, 11, 12, 13, 14], "std": [4, 5, 9, 10, 12, 13], "string": [4, 9, 12, 13], "filedir": 4, "ptsize": 4, "creat": [4, 9, 10, 11, 12], "context": [4, 9, 10, 12], "directori": 4, "file": [4, 12, 13], "point": [4, 7], "size": [4, 7, 11, 12], "shared_ptr": [4, 9, 10, 12], "antialia": 4, "wraplength": 4, "whether": [4, 7, 9], "length": [4, 6], "wrap": 4, "getmousepo": 5, "scale": [5, 9, 11], "1": [5, 9], "mous": 5, "posit": [5, 7, 9], "temporari": 5, "getmousebuttonpress": 5, "uint8": 5, "getkeyspress": 5, "kei": 5, "getvector": 5, "vector": [5, 6, 9, 13], "sdl_scancod": 5, "left": 5, "right": 5, "up": 5, "down": 5, "move": [5, 11, 12], "struct": [6, 7], "repres": [6, 7, 13], "2d": 6, "float": [6, 7, 11], "getlength": 6, "normal": 6, "distanceto": 6, "other": 6, "distanc": 6, "anoth": [6, 7], "static": 6, "zero": 6, "clampvec": 6, "vec": 6, "min": [6, 7], "max": [6, 7], "clamp": [6, 7], "minimum": [6, 7], "valu": [6, 7], "maximum": [6, 7], "lerpvec": 6, "b": 6, "linearli": 6, "interpol": 6, "templat": 6, "digit": 6, "val": 6, "sdl_frect": 7, "inlin": [7, 9, 12], "y": [7, 9], "w": 7, "h": 7, "construct": [7, 13], "new": 7, "object": [7, 13], "getpo": 7, "getsiz": [7, 11], "setsiz": [7, 11], "set": [7, 11], "collidepoint": 7, "po": 7, "check": 7, "collid": 7, "colliderect": 7, "must": [9, 12, 14], "singleton": [9, 12, 14], "titl": 9, "fullscreen": 9, "make": 9, "255": 9, "blit": 9, "crop": 9, "from": [9, 10, 12, 13], "blitex": 9, "angl": 9, "flipx": 9, "flipi": 9, "axi": 9, "sdl_render": 9, "getrender": 9, "kn_event": 9, "contain": [10, 11], "intend": 10, "inherit": 10, "gettextur": [10, 12], "pointer": [10, 12], "explicit": [11, 12], "sdl_textur": 11, "load": [11, 12], "meant": 11, "sdl": 11, "getrect": 11, "getsdltextur": 11, "scalebi": 11, "factor": 11, "fitwidth": 11, "width": 11, "fit": 11, "maintain": 11, "aspect": 11, "ratio": 11, "fitheight": 11, "height": 11, "instanti": 12, "unload": 12, "name": 12, "path": [12, 13], "solid": 12, "an": 12, "exist": 12, "recommend": 12, "map": [12, 13], "getcach": 12, "unloadal": 12, "all": 12, "tile": 13, "read": 13, "tmx": 13, "gener": 13, "editor": 13, "tmxpath": 13, "drawtil": 13, "drawobject": 13, "drawal": 13, "getobject": 13, "keep": 14, "track": 14, "framer": 14, "360": 14, "delta": 14, "between": 14, "calcul": 14}, "objects": {"": [[4, 0, 1, "_CPPv4N2kn4FontE", "kn::Font"], [4, 1, 1, "_CPPv4N2kn4Font4FontER12RenderWindowRKNSt6stringEi", "kn::Font::Font"], [4, 2, 1, "_CPPv4N2kn4Font4FontER12RenderWindowRKNSt6stringEi", "kn::Font::Font::fileDir"], [4, 2, 1, "_CPPv4N2kn4Font4FontER12RenderWindowRKNSt6stringEi", "kn::Font::Font::ptSize"], [4, 2, 1, "_CPPv4N2kn4Font4FontER12RenderWindowRKNSt6stringEi", "kn::Font::Font::window"], [4, 1, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb9SDL_Colori", "kn::Font::render"], [4, 2, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb9SDL_Colori", "kn::Font::render::antialias"], [4, 2, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb9SDL_Colori", "kn::Font::render::color"], [4, 2, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb9SDL_Colori", "kn::Font::render::text"], [4, 2, 1, "_CPPv4N2kn4Font6renderERKNSt6stringEb9SDL_Colori", "kn::Font::render::wrapLength"], [7, 0, 1, "_CPPv4N2kn4RectE", "kn::Rect"], [7, 1, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect"], [7, 2, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect::h"], [7, 2, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect::w"], [7, 2, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect::x"], [7, 2, 1, "_CPPv4N2kn4Rect4RectEffff", "kn::Rect::Rect::y"], [7, 1, 1, "_CPPv4N2kn4Rect5clampERKN4math4Vec2ERKN4math4Vec2E", "kn::Rect::clamp"], [7, 2, 1, "_CPPv4N2kn4Rect5clampERKN4math4Vec2ERKN4math4Vec2E", "kn::Rect::clamp::max"], [7, 2, 1, "_CPPv4N2kn4Rect5clampERKN4math4Vec2ERKN4math4Vec2E", "kn::Rect::clamp::min"], [7, 1, 1, "_CPPv4N2kn4Rect12collidePointERKN4math4Vec2E", "kn::Rect::collidePoint"], [7, 2, 1, "_CPPv4N2kn4Rect12collidePointERKN4math4Vec2E", "kn::Rect::collidePoint::pos"], [7, 1, 1, "_CPPv4N2kn4Rect11collideRectERK4Rect", "kn::Rect::collideRect"], [7, 2, 1, "_CPPv4N2kn4Rect11collideRectERK4Rect", "kn::Rect::collideRect::rect"], [7, 1, 1, "_CPPv4N2kn4Rect6getPosEv", "kn::Rect::getPos"], [7, 1, 1, "_CPPv4N2kn4Rect7getSizeEv", "kn::Rect::getSize"], [7, 1, 1, "_CPPv4N2kn4Rect7setSizeERKN4math4Vec2E", "kn::Rect::setSize"], [7, 2, 1, "_CPPv4N2kn4Rect7setSizeERKN4math4Vec2E", "kn::Rect::setSize::size"], [9, 0, 1, "_CPPv4N2kn12RenderWindowE", "kn::RenderWindow"], [9, 1, 1, "_CPPv4N2kn12RenderWindow12RenderWindowERKNSt6stringEib", "kn::RenderWindow::RenderWindow"], [9, 2, 1, "_CPPv4N2kn12RenderWindow12RenderWindowERKNSt6stringEib", "kn::RenderWindow::RenderWindow::fullscreen"], [9, 2, 1, "_CPPv4N2kn12RenderWindow12RenderWindowERKNSt6stringEib", "kn::RenderWindow::RenderWindow::scale"], [9, 2, 1, "_CPPv4N2kn12RenderWindow12RenderWindowERKNSt6stringEib", "kn::RenderWindow::RenderWindow::title"], [9, 1, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect", "kn::RenderWindow::blit"], [9, 1, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEERKN4math4Vec2E", "kn::RenderWindow::blit"], [9, 2, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect", "kn::RenderWindow::blit::crop"], [9, 2, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEERKN4math4Vec2E", "kn::RenderWindow::blit::position"], [9, 2, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect", "kn::RenderWindow::blit::rect"], [9, 2, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect", "kn::RenderWindow::blit::texture"], [9, 2, 1, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEERKN4math4Vec2E", "kn::RenderWindow::blit::texture"], [9, 1, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx"], [9, 1, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx"], [9, 2, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::angle"], [9, 2, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::angle"], [9, 2, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::crop"], [9, 2, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::flipX"], [9, 2, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::flipX"], [9, 2, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::flipY"], [9, 2, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::flipY"], [9, 2, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::position"], [9, 2, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::rect"], [9, 2, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb", "kn::RenderWindow::blitEx::texture"], [9, 2, 1, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb", "kn::RenderWindow::blitEx::texture"], [9, 1, 1, "_CPPv4N2kn12RenderWindow3clsE9SDL_Color", "kn::RenderWindow::cls"], [9, 2, 1, "_CPPv4N2kn12RenderWindow3clsE9SDL_Color", "kn::RenderWindow::cls::color"], [9, 1, 1, "_CPPv4N2kn12RenderWindow4flipEv", "kn::RenderWindow::flip"], [9, 1, 1, "_CPPv4N2kn12RenderWindow9getEventsEv", "kn::RenderWindow::getEvents"], [9, 1, 1, "_CPPv4N2kn12RenderWindow11getRendererEv", "kn::RenderWindow::getRenderer"], [10, 0, 1, "_CPPv4N2kn6SpriteE", "kn::Sprite"], [10, 1, 1, "_CPPv4N2kn6Sprite6SpriteER12RenderWindowNSt10shared_ptrI7TextureEE", "kn::Sprite::Sprite"], [10, 2, 1, "_CPPv4N2kn6Sprite6SpriteER12RenderWindowNSt10shared_ptrI7TextureEE", "kn::Sprite::Sprite::texture"], [10, 2, 1, "_CPPv4N2kn6Sprite6SpriteER12RenderWindowNSt10shared_ptrI7TextureEE", "kn::Sprite::Sprite::window"], [10, 1, 1, "_CPPv4NK2kn6Sprite10getTextureEv", "kn::Sprite::getTexture"], [11, 0, 1, "_CPPv4N2kn7TextureE", "kn::Texture"], [11, 1, 1, "_CPPv4N2kn7Texture7TextureEP11SDL_Texture", "kn::Texture::Texture"], [11, 2, 1, "_CPPv4N2kn7Texture7TextureEP11SDL_Texture", "kn::Texture::Texture::texture"], [11, 1, 1, "_CPPv4N2kn7Texture9fitHeightEf", "kn::Texture::fitHeight"], [11, 2, 1, "_CPPv4N2kn7Texture9fitHeightEf", "kn::Texture::fitHeight::height"], [11, 1, 1, "_CPPv4N2kn7Texture8fitWidthEf", "kn::Texture::fitWidth"], [11, 2, 1, "_CPPv4N2kn7Texture8fitWidthEf", "kn::Texture::fitWidth::width"], [11, 1, 1, "_CPPv4NK2kn7Texture7getRectEv", "kn::Texture::getRect"], [11, 1, 1, "_CPPv4NK2kn7Texture13getSDLTextureEv", "kn::Texture::getSDLTexture"], [11, 1, 1, "_CPPv4NK2kn7Texture7getSizeEv", "kn::Texture::getSize"], [11, 1, 1, "_CPPv4N2kn7Texture7scaleByEf", "kn::Texture::scaleBy"], [11, 2, 1, "_CPPv4N2kn7Texture7scaleByEf", "kn::Texture::scaleBy::factor"], [11, 1, 1, "_CPPv4N2kn7Texture7setSizeERKN4math4Vec2E", "kn::Texture::setSize"], [11, 2, 1, "_CPPv4N2kn7Texture7setSizeERKN4math4Vec2E", "kn::Texture::setSize::size"], [12, 0, 1, "_CPPv4N2kn12TextureCacheE", "kn::TextureCache"], [12, 1, 1, "_CPPv4N2kn12TextureCache12TextureCacheER12RenderWindow", "kn::TextureCache::TextureCache"], [12, 2, 1, "_CPPv4N2kn12TextureCache12TextureCacheER12RenderWindow", "kn::TextureCache::TextureCache::window"], [12, 1, 1, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E9SDL_Color", "kn::TextureCache::create"], [12, 2, 1, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E9SDL_Color", "kn::TextureCache::create::color"], [12, 2, 1, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E9SDL_Color", "kn::TextureCache::create::name"], [12, 2, 1, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E9SDL_Color", "kn::TextureCache::create::size"], [12, 1, 1, "_CPPv4NK2kn12TextureCache8getCacheEv", "kn::TextureCache::getCache"], [12, 1, 1, "_CPPv4NK2kn12TextureCache10getTextureERKNSt6stringE", "kn::TextureCache::getTexture"], [12, 2, 1, "_CPPv4NK2kn12TextureCache10getTextureERKNSt6stringE", "kn::TextureCache::getTexture::name"], [12, 1, 1, "_CPPv4N2kn12TextureCache4loadERKNSt6stringERKNSt6stringE", "kn::TextureCache::load"], [12, 2, 1, "_CPPv4N2kn12TextureCache4loadERKNSt6stringERKNSt6stringE", "kn::TextureCache::load::name"], [12, 2, 1, "_CPPv4N2kn12TextureCache4loadERKNSt6stringERKNSt6stringE", "kn::TextureCache::load::path"], [12, 1, 1, "_CPPv4N2kn12TextureCache4moveERKNSt6stringENSt10shared_ptrI7TextureEE", "kn::TextureCache::move"], [12, 2, 1, "_CPPv4N2kn12TextureCache4moveERKNSt6stringENSt10shared_ptrI7TextureEE", "kn::TextureCache::move::name"], [12, 2, 1, "_CPPv4N2kn12TextureCache4moveERKNSt6stringENSt10shared_ptrI7TextureEE", "kn::TextureCache::move::texture"], [12, 1, 1, "_CPPv4N2kn12TextureCache6unloadERKNSt6stringE", "kn::TextureCache::unload"], [12, 2, 1, "_CPPv4N2kn12TextureCache6unloadERKNSt6stringE", "kn::TextureCache::unload::name"], [12, 1, 1, "_CPPv4N2kn12TextureCache9unloadAllEv", "kn::TextureCache::unloadAll"], [12, 1, 1, "_CPPv4N2kn12TextureCacheD0Ev", "kn::TextureCache::~TextureCache"], [13, 0, 1, "_CPPv4N2kn7TileMapE", "kn::TileMap"], [13, 1, 1, "_CPPv4N2kn7TileMap7TileMapER12RenderWindowR12TextureCacheRKNSt6stringE", "kn::TileMap::TileMap"], [13, 2, 1, "_CPPv4N2kn7TileMap7TileMapER12RenderWindowR12TextureCacheRKNSt6stringE", "kn::TileMap::TileMap::textureCache"], [13, 2, 1, "_CPPv4N2kn7TileMap7TileMapER12RenderWindowR12TextureCacheRKNSt6stringE", "kn::TileMap::TileMap::tmxPath"], [13, 2, 1, "_CPPv4N2kn7TileMap7TileMapER12RenderWindowR12TextureCacheRKNSt6stringE", "kn::TileMap::TileMap::window"], [13, 1, 1, "_CPPv4N2kn7TileMap7drawAllEv", "kn::TileMap::drawAll"], [13, 1, 1, "_CPPv4N2kn7TileMap11drawObjectsEv", "kn::TileMap::drawObjects"], [13, 1, 1, "_CPPv4N2kn7TileMap9drawTilesEv", "kn::TileMap::drawTiles"], [13, 1, 1, "_CPPv4NK2kn7TileMap10getObjectsEv", "kn::TileMap::getObjects"], [3, 1, 1, "_CPPv4N2kn4draw4rectER12RenderWindowR4RectK9SDL_Colori", "kn::draw::rect"], [3, 2, 1, "_CPPv4N2kn4draw4rectER12RenderWindowR4RectK9SDL_Colori", "kn::draw::rect::color"], [3, 2, 1, "_CPPv4N2kn4draw4rectER12RenderWindowR4RectK9SDL_Colori", "kn::draw::rect::rect"], [3, 2, 1, "_CPPv4N2kn4draw4rectER12RenderWindowR4RectK9SDL_Colori", "kn::draw::rect::thickness"], [3, 2, 1, "_CPPv4N2kn4draw4rectER12RenderWindowR4RectK9SDL_Colori", "kn::draw::rect::window"], [5, 1, 1, "_CPPv4N2kn5input14getKeysPressedEv", "kn::input::getKeysPressed"], [5, 1, 1, "_CPPv4N2kn5input21getMouseButtonPressedEv", "kn::input::getMouseButtonPressed"], [5, 1, 1, "_CPPv4N2kn5input11getMousePosEi", "kn::input::getMousePos"], [5, 2, 1, "_CPPv4N2kn5input11getMousePosEi", "kn::input::getMousePos::scale"], [5, 1, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEE", "kn::input::getVector"], [5, 2, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEE", "kn::input::getVector::down"], [5, 2, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEE", "kn::input::getVector::left"], [5, 2, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEE", "kn::input::getVector::right"], [5, 2, 1, "_CPPv4N2kn5input9getVectorERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEE", "kn::input::getVector::up"], [6, 0, 1, "_CPPv4N2kn4math4Vec2E", "kn::math::Vec2"], [6, 1, 1, "_CPPv4N2kn4math4Vec24ZEROEv", "kn::math::Vec2::ZERO"], [6, 1, 1, "_CPPv4NK2kn4math4Vec210distanceToERK4Vec2", "kn::math::Vec2::distanceTo"], [6, 2, 1, "_CPPv4NK2kn4math4Vec210distanceToERK4Vec2", "kn::math::Vec2::distanceTo::other"], [6, 1, 1, "_CPPv4NK2kn4math4Vec29getLengthEv", "kn::math::Vec2::getLength"], [6, 1, 1, "_CPPv4N2kn4math4Vec29normalizeEv", "kn::math::Vec2::normalize"], [6, 1, 1, "_CPPv4I0EN2kn4math5clampE5digit5digit5digit5digit", "kn::math::clamp"], [6, 3, 1, "_CPPv4I0EN2kn4math5clampE5digit5digit5digit5digit", "kn::math::clamp::digit"], [6, 2, 1, "_CPPv4I0EN2kn4math5clampE5digit5digit5digit5digit", "kn::math::clamp::max"], [6, 2, 1, "_CPPv4I0EN2kn4math5clampE5digit5digit5digit5digit", "kn::math::clamp::min"], [6, 2, 1, "_CPPv4I0EN2kn4math5clampE5digit5digit5digit5digit", "kn::math::clamp::val"], [6, 1, 1, "_CPPv4N2kn4math8clampVecE4Vec2RK4Vec2RK4Vec2", "kn::math::clampVec"], [6, 2, 1, "_CPPv4N2kn4math8clampVecE4Vec2RK4Vec2RK4Vec2", "kn::math::clampVec::max"], [6, 2, 1, "_CPPv4N2kn4math8clampVecE4Vec2RK4Vec2RK4Vec2", "kn::math::clampVec::min"], [6, 2, 1, "_CPPv4N2kn4math8clampVecE4Vec2RK4Vec2RK4Vec2", "kn::math::clampVec::vec"], [6, 1, 1, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2f", "kn::math::lerpVec"], [6, 2, 1, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2f", "kn::math::lerpVec::a"], [6, 2, 1, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2f", "kn::math::lerpVec::b"], [6, 2, 1, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2f", "kn::math::lerpVec::t"], [14, 0, 1, "_CPPv4N2kn4time5ClockE", "kn::time::Clock"], [14, 1, 1, "_CPPv4N2kn4time5Clock4tickEi", "kn::time::Clock::tick"], [14, 2, 1, "_CPPv4N2kn4time5Clock4tickEi", "kn::time::Clock::tick::frameRate"]]}, "objtypes": {"0": "cpp:class", "1": "cpp:function", "2": "cpp:functionParam", "3": "cpp:templateParam"}, "objnames": {"0": ["cpp", "class", "C++ class"], "1": ["cpp", "function", "C++ function"], "2": ["cpp", "functionParam", "C++ function parameter"], "3": ["cpp", "templateParam", "C++ template parameter"]}, "titleterms": {"get": 0, "start": 0, "hello": 0, "world": 0, "introduct": 1, "tabl": 1, "content": 1, "instal": 2, "draw": 3, "font": 4, "input": 5, "math": 6, "rect": 7, "api": 8, "refer": 8, "renderwindow": 9, "sprite": 10, "textur": 11, "texturecach": 12, "tilemap": 13, "time": 14}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"Getting Started": [[0, "getting-started"]], "Hello World": [[0, "hello-world"]], "Introduction": [[1, "introduction"]], "Table of Contents": [[1, "table-of-contents"]], "Installation": [[2, "installation"]], "draw": [[3, "draw"]], "Font": [[4, "font"]], "input": [[5, "input"]], "math": [[6, "math"]], "Rect": [[7, "rect"]], "API Reference": [[8, "api-reference"]], "RenderWindow": [[9, "renderwindow"]], "Sprite": [[10, "sprite"]], "Texture": [[11, "texture"]], "TextureCache": [[12, "texturecache"]], "TileMap": [[13, "tilemap"]], "time": [[14, "time"]]}, "indexentries": {"kn::draw::rect (c++ function)": [[3, "_CPPv4N2kn4draw4rectER12RenderWindowR4RectK9SDL_Colori"]], "kn::font (c++ class)": [[4, "_CPPv4N2kn4FontE"]], "kn::font::font (c++ function)": [[4, "_CPPv4N2kn4Font4FontER12RenderWindowRKNSt6stringEi"]], "kn::font::render (c++ function)": [[4, "_CPPv4N2kn4Font6renderERKNSt6stringEb9SDL_Colori"]], "kn::input::getkeyspressed (c++ function)": [[5, "_CPPv4N2kn5input14getKeysPressedEv"]], "kn::input::getmousebuttonpressed (c++ function)": [[5, "_CPPv4N2kn5input21getMouseButtonPressedEv"]], "kn::input::getmousepos (c++ function)": [[5, "_CPPv4N2kn5input11getMousePosEi"]], "kn::input::getvector (c++ function)": [[5, "_CPPv4N2kn5input9getVectorERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEERKNSt6vectorI12SDL_ScancodeEE"]], "kn::math::vec2 (c++ struct)": [[6, "_CPPv4N2kn4math4Vec2E"]], "kn::math::vec2::zero (c++ function)": [[6, "_CPPv4N2kn4math4Vec24ZEROEv"]], "kn::math::vec2::distanceto (c++ function)": [[6, "_CPPv4NK2kn4math4Vec210distanceToERK4Vec2"]], "kn::math::vec2::getlength (c++ function)": [[6, "_CPPv4NK2kn4math4Vec29getLengthEv"]], "kn::math::vec2::normalize (c++ function)": [[6, "_CPPv4N2kn4math4Vec29normalizeEv"]], "kn::math::clamp (c++ function)": [[6, "_CPPv4I0EN2kn4math5clampE5digit5digit5digit5digit"]], "kn::math::clampvec (c++ function)": [[6, "_CPPv4N2kn4math8clampVecE4Vec2RK4Vec2RK4Vec2"]], "kn::math::lerpvec (c++ function)": [[6, "_CPPv4N2kn4math7lerpVecERK4Vec2RK4Vec2f"]], "kn::rect (c++ struct)": [[7, "_CPPv4N2kn4RectE"]], "kn::rect::rect (c++ function)": [[7, "_CPPv4N2kn4Rect4RectEffff"]], "kn::rect::clamp (c++ function)": [[7, "_CPPv4N2kn4Rect5clampERKN4math4Vec2ERKN4math4Vec2E"]], "kn::rect::collidepoint (c++ function)": [[7, "_CPPv4N2kn4Rect12collidePointERKN4math4Vec2E"]], "kn::rect::colliderect (c++ function)": [[7, "_CPPv4N2kn4Rect11collideRectERK4Rect"]], "kn::rect::getpos (c++ function)": [[7, "_CPPv4N2kn4Rect6getPosEv"]], "kn::rect::getsize (c++ function)": [[7, "_CPPv4N2kn4Rect7getSizeEv"]], "kn::rect::setsize (c++ function)": [[7, "_CPPv4N2kn4Rect7setSizeERKN4math4Vec2E"]], "kn::renderwindow (c++ class)": [[9, "_CPPv4N2kn12RenderWindowE"]], "kn::renderwindow::renderwindow (c++ function)": [[9, "_CPPv4N2kn12RenderWindow12RenderWindowERKNSt6stringEib"]], "kn::renderwindow::blit (c++ function)": [[9, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEE4Rect4Rect"], [9, "_CPPv4N2kn12RenderWindow4blitERKNSt10shared_ptrI7TextureEERKN4math4Vec2E"]], "kn::renderwindow::blitex (c++ function)": [[9, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEE4Rect4Rectdbb"], [9, "_CPPv4N2kn12RenderWindow6blitExERKNSt10shared_ptrI7TextureEERKN4math4Vec2Edbb"]], "kn::renderwindow::cls (c++ function)": [[9, "_CPPv4N2kn12RenderWindow3clsE9SDL_Color"]], "kn::renderwindow::flip (c++ function)": [[9, "_CPPv4N2kn12RenderWindow4flipEv"]], "kn::renderwindow::getevents (c++ function)": [[9, "_CPPv4N2kn12RenderWindow9getEventsEv"]], "kn::renderwindow::getrenderer (c++ function)": [[9, "_CPPv4N2kn12RenderWindow11getRendererEv"]], "kn::sprite (c++ class)": [[10, "_CPPv4N2kn6SpriteE"]], "kn::sprite::sprite (c++ function)": [[10, "_CPPv4N2kn6Sprite6SpriteER12RenderWindowNSt10shared_ptrI7TextureEE"]], "kn::sprite::gettexture (c++ function)": [[10, "_CPPv4NK2kn6Sprite10getTextureEv"]], "kn::texture (c++ class)": [[11, "_CPPv4N2kn7TextureE"]], "kn::texture::texture (c++ function)": [[11, "_CPPv4N2kn7Texture7TextureEP11SDL_Texture"]], "kn::texture::fitheight (c++ function)": [[11, "_CPPv4N2kn7Texture9fitHeightEf"]], "kn::texture::fitwidth (c++ function)": [[11, "_CPPv4N2kn7Texture8fitWidthEf"]], "kn::texture::getrect (c++ function)": [[11, "_CPPv4NK2kn7Texture7getRectEv"]], "kn::texture::getsdltexture (c++ function)": [[11, "_CPPv4NK2kn7Texture13getSDLTextureEv"]], "kn::texture::getsize (c++ function)": [[11, "_CPPv4NK2kn7Texture7getSizeEv"]], "kn::texture::scaleby (c++ function)": [[11, "_CPPv4N2kn7Texture7scaleByEf"]], "kn::texture::setsize (c++ function)": [[11, "_CPPv4N2kn7Texture7setSizeERKN4math4Vec2E"]], "kn::texturecache (c++ class)": [[12, "_CPPv4N2kn12TextureCacheE"]], "kn::texturecache::texturecache (c++ function)": [[12, "_CPPv4N2kn12TextureCache12TextureCacheER12RenderWindow"]], "kn::texturecache::create (c++ function)": [[12, "_CPPv4N2kn12TextureCache6createERKNSt6stringERKN4math4Vec2E9SDL_Color"]], "kn::texturecache::getcache (c++ function)": [[12, "_CPPv4NK2kn12TextureCache8getCacheEv"]], "kn::texturecache::gettexture (c++ function)": [[12, "_CPPv4NK2kn12TextureCache10getTextureERKNSt6stringE"]], "kn::texturecache::load (c++ function)": [[12, "_CPPv4N2kn12TextureCache4loadERKNSt6stringERKNSt6stringE"]], "kn::texturecache::move (c++ function)": [[12, "_CPPv4N2kn12TextureCache4moveERKNSt6stringENSt10shared_ptrI7TextureEE"]], "kn::texturecache::unload (c++ function)": [[12, "_CPPv4N2kn12TextureCache6unloadERKNSt6stringE"]], "kn::texturecache::unloadall (c++ function)": [[12, "_CPPv4N2kn12TextureCache9unloadAllEv"]], "kn::texturecache::~texturecache (c++ function)": [[12, "_CPPv4N2kn12TextureCacheD0Ev"]], "kn::tilemap (c++ class)": [[13, "_CPPv4N2kn7TileMapE"]], "kn::tilemap::tilemap (c++ function)": [[13, "_CPPv4N2kn7TileMap7TileMapER12RenderWindowR12TextureCacheRKNSt6stringE"]], "kn::tilemap::drawall (c++ function)": [[13, "_CPPv4N2kn7TileMap7drawAllEv"]], "kn::tilemap::drawobjects (c++ function)": [[13, "_CPPv4N2kn7TileMap11drawObjectsEv"]], "kn::tilemap::drawtiles (c++ function)": [[13, "_CPPv4N2kn7TileMap9drawTilesEv"]], "kn::tilemap::getobjects (c++ function)": [[13, "_CPPv4NK2kn7TileMap10getObjectsEv"]], "kn::time::clock (c++ class)": [[14, "_CPPv4N2kn4time5ClockE"]], "kn::time::clock::tick (c++ function)": [[14, "_CPPv4N2kn4time5Clock4tickEi"]]}})
\ No newline at end of file
diff --git a/docs/source/Doxyfile b/docs/source/Doxyfile
index c629dfa..1305ed9 100644
--- a/docs/source/Doxyfile
+++ b/docs/source/Doxyfile
@@ -48,13 +48,13 @@ PROJECT_NAME = "Kraken Engine"
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = "Alpha v1"
+PROJECT_NUMBER = v0.1
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.
-PROJECT_BRIEF = "The next best SDL2 wrapper engine."
+PROJECT_BRIEF = "The easiest C++ tool for game dev."
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
@@ -68,7 +68,7 @@ PROJECT_LOGO = "C:/Users/Derrick Martinez/Pictures/zerzym_a_grayscale_
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = D:/Code/durkisneer1.github.io/kraken
+OUTPUT_DIRECTORY = ../build/html
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096
# sub-directories (in 2 levels) under the output directory of each output format
@@ -943,7 +943,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
-INPUT = D:/Code/c++/Kraken-Engine/include
+INPUT = ../../include
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
diff --git a/docs/source/getting_started.rst b/docs/source/getting_started.rst
index af966df..4b36bea 100644
--- a/docs/source/getting_started.rst
+++ b/docs/source/getting_started.rst
@@ -16,7 +16,7 @@ After following the :doc:`installation` guide, you are ready for your first Krak
int main() {
- kn::RenderWindow window("Hello World");
+ kn::RenderWindow window;
kn::time::Clock clock;
bool done = false;
diff --git a/docs/source/reference/draw.rst b/docs/source/reference/draw.rst
new file mode 100644
index 0000000..aea3550
--- /dev/null
+++ b/docs/source/reference/draw.rst
@@ -0,0 +1,5 @@
+====
+draw
+====
+
+.. doxygenfunction:: kn::draw::rect
\ No newline at end of file
diff --git a/docs/source/reference/font.rst b/docs/source/reference/font.rst
new file mode 100644
index 0000000..f4cf16a
--- /dev/null
+++ b/docs/source/reference/font.rst
@@ -0,0 +1,6 @@
+====
+Font
+====
+
+.. doxygenclass:: kn::Font
+ :members:
\ No newline at end of file
diff --git a/docs/source/reference/input.rst b/docs/source/reference/input.rst
new file mode 100644
index 0000000..67da922
--- /dev/null
+++ b/docs/source/reference/input.rst
@@ -0,0 +1,11 @@
+=====
+input
+=====
+
+.. doxygenfunction:: kn::input::getMousePos
+
+.. doxygenfunction:: kn::input::getMouseButtonPressed
+
+.. doxygenfunction:: kn::input::getKeysPressed
+
+.. doxygenfunction:: kn::input::getVector
\ No newline at end of file
diff --git a/docs/source/reference/math.rst b/docs/source/reference/math.rst
new file mode 100644
index 0000000..13acc04
--- /dev/null
+++ b/docs/source/reference/math.rst
@@ -0,0 +1,12 @@
+====
+math
+====
+
+.. doxygenstruct:: kn::math::Vec2
+ :members:
+
+.. doxygenfunction:: kn::math::clampVec
+
+.. doxygenfunction:: kn::math::lerpVec
+
+.. doxygenfunction:: kn::math::clamp
\ No newline at end of file
diff --git a/docs/source/reference/rect.rst b/docs/source/reference/rect.rst
new file mode 100644
index 0000000..6d7c5ad
--- /dev/null
+++ b/docs/source/reference/rect.rst
@@ -0,0 +1,6 @@
+====
+Rect
+====
+
+.. doxygenstruct:: kn::Rect
+ :members:
\ No newline at end of file
diff --git a/docs/source/reference/ref_main.rst b/docs/source/reference/ref_main.rst
index 467f337..812fe1c 100644
--- a/docs/source/reference/ref_main.rst
+++ b/docs/source/reference/ref_main.rst
@@ -3,4 +3,16 @@ API Reference
=============
.. toctree::
- :maxdepth: 1
\ No newline at end of file
+ :maxdepth: 1
+
+ draw.rst
+ font.rst
+ input.rst
+ math.rst
+ rect.rst
+ render_window.rst
+ sprite.rst
+ texture_cache.rst
+ texture.rst
+ tile_map.rst
+ time.rst
\ No newline at end of file
diff --git a/docs/source/reference/render_window.rst b/docs/source/reference/render_window.rst
new file mode 100644
index 0000000..85e7014
--- /dev/null
+++ b/docs/source/reference/render_window.rst
@@ -0,0 +1,6 @@
+============
+RenderWindow
+============
+
+.. doxygenclass:: kn::RenderWindow
+ :members:
\ No newline at end of file
diff --git a/docs/source/reference/sprite.rst b/docs/source/reference/sprite.rst
new file mode 100644
index 0000000..7cd8a11
--- /dev/null
+++ b/docs/source/reference/sprite.rst
@@ -0,0 +1,6 @@
+======
+Sprite
+======
+
+.. doxygenclass:: kn::Sprite
+ :members:
\ No newline at end of file
diff --git a/docs/source/reference/texture.rst b/docs/source/reference/texture.rst
new file mode 100644
index 0000000..b1a313a
--- /dev/null
+++ b/docs/source/reference/texture.rst
@@ -0,0 +1,6 @@
+=======
+Texture
+=======
+
+.. doxygenclass:: kn::Texture
+ :members:
\ No newline at end of file
diff --git a/docs/source/reference/texture_cache.rst b/docs/source/reference/texture_cache.rst
new file mode 100644
index 0000000..93d27c4
--- /dev/null
+++ b/docs/source/reference/texture_cache.rst
@@ -0,0 +1,6 @@
+============
+TextureCache
+============
+
+.. doxygenclass:: kn::TextureCache
+ :members:
\ No newline at end of file
diff --git a/docs/source/reference/tile_map.rst b/docs/source/reference/tile_map.rst
new file mode 100644
index 0000000..d349ded
--- /dev/null
+++ b/docs/source/reference/tile_map.rst
@@ -0,0 +1,6 @@
+=======
+TileMap
+=======
+
+.. doxygenclass:: kn::TileMap
+ :members:
\ No newline at end of file
diff --git a/docs/source/reference/time.rst b/docs/source/reference/time.rst
new file mode 100644
index 0000000..0539c00
--- /dev/null
+++ b/docs/source/reference/time.rst
@@ -0,0 +1,6 @@
+====
+time
+====
+
+.. doxygenclass:: kn::time::Clock
+ :members:
diff --git a/docs/source/xml/Doxyfile.xml b/docs/source/xml/Doxyfile.xml
new file mode 100644
index 0000000..481e7bb
--- /dev/null
+++ b/docs/source/xml/Doxyfile.xml
@@ -0,0 +1,396 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/source/xml/_clock_8hpp.xml b/docs/source/xml/_clock_8hpp.xml
new file mode 100644
index 0000000..7431791
--- /dev/null
+++ b/docs/source/xml/_clock_8hpp.xml
@@ -0,0 +1,63 @@
+
+
+
+ Clock.hpp
+ SDL.h
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::time::Clock
+ kn
+ kn::time
+
+
+
+
+
+#pragmaonce
+
+#include<SDL.h>
+
+
+namespace
[kn]{
+namespacetime{
+
+class[Clock]final{
+public:
+[Clock]()=default;
+[~Clock]()=default;
+
+double[tick](intframeRate=360);
+
+private:
+uint64_tnow,last=SDL_GetTicks64();
+uint64_trawTime,frameTime=0;
+};
+
+}
+}
+
+
+
+
diff --git a/docs/source/xml/_constants_8hpp.xml b/docs/source/xml/_constants_8hpp.xml
new file mode 100644
index 0000000..d1e7261
--- /dev/null
+++ b/docs/source/xml/_constants_8hpp.xml
@@ -0,0 +1,1107 @@
+
+
+
+ Constants.hpp
+ SDL.h
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+ D:/Code/c++/Kraken-Engine/include/RenderWindow.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SDL_Scancode
+ typedef SDL_Scancode KN_KEYS
+
+ KN_KEYS
+
+
+
+
+
+
+
+
+
+ SDL_Event
+ typedef SDL_Event KN_Event
+
+ KN_Event
+
+
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_w
+
+ KNK_w
+ = SDL_SCANCODE_W
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_a
+
+ KNK_a
+ = SDL_SCANCODE_A
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_s
+
+ KNK_s
+ = SDL_SCANCODE_S
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_d
+
+ KNK_d
+ = SDL_SCANCODE_D
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_q
+
+ KNK_q
+ = SDL_SCANCODE_Q
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_e
+
+ KNK_e
+ = SDL_SCANCODE_E
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_r
+
+ KNK_r
+ = SDL_SCANCODE_R
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_f
+
+ KNK_f
+ = SDL_SCANCODE_F
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_t
+
+ KNK_t
+ = SDL_SCANCODE_T
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_g
+
+ KNK_g
+ = SDL_SCANCODE_G
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_y
+
+ KNK_y
+ = SDL_SCANCODE_Y
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_h
+
+ KNK_h
+ = SDL_SCANCODE_H
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_u
+
+ KNK_u
+ = SDL_SCANCODE_U
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_j
+
+ KNK_j
+ = SDL_SCANCODE_J
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_i
+
+ KNK_i
+ = SDL_SCANCODE_I
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_k
+
+ KNK_k
+ = SDL_SCANCODE_K
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_o
+
+ KNK_o
+ = SDL_SCANCODE_O
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_l
+
+ KNK_l
+ = SDL_SCANCODE_L
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_p
+
+ KNK_p
+ = SDL_SCANCODE_P
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_z
+
+ KNK_z
+ = SDL_SCANCODE_Z
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_x
+
+ KNK_x
+ = SDL_SCANCODE_X
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_c
+
+ KNK_c
+ = SDL_SCANCODE_C
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_v
+
+ KNK_v
+ = SDL_SCANCODE_V
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_b
+
+ KNK_b
+ = SDL_SCANCODE_B
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_n
+
+ KNK_n
+ = SDL_SCANCODE_N
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_m
+
+ KNK_m
+ = SDL_SCANCODE_M
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_0
+
+ KNK_0
+ = SDL_SCANCODE_0
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_1
+
+ KNK_1
+ = SDL_SCANCODE_1
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_2
+
+ KNK_2
+ = SDL_SCANCODE_2
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_3
+
+ KNK_3
+ = SDL_SCANCODE_3
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_4
+
+ KNK_4
+ = SDL_SCANCODE_4
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_5
+
+ KNK_5
+ = SDL_SCANCODE_5
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_6
+
+ KNK_6
+ = SDL_SCANCODE_6
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_7
+
+ KNK_7
+ = SDL_SCANCODE_7
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_8
+
+ KNK_8
+ = SDL_SCANCODE_8
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_9
+
+ KNK_9
+ = SDL_SCANCODE_9
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_left
+
+ KNK_left
+ = SDL_SCANCODE_LEFT
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_right
+
+ KNK_right
+ = SDL_SCANCODE_RIGHT
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_down
+
+ KNK_down
+ = SDL_SCANCODE_DOWN
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_up
+
+ KNK_up
+ = SDL_SCANCODE_UP
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_space
+
+ KNK_space
+ = SDL_SCANCODE_SPACE
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_return
+
+ KNK_return
+ = SDL_SCANCODE_RETURN
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_backspace
+
+ KNK_backspace
+ = SDL_SCANCODE_BACKSPACE
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_tab
+
+ KNK_tab
+ = SDL_SCANCODE_TAB
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_lshift
+
+ KNK_lshift
+ = SDL_SCANCODE_LSHIFT
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_rshift
+
+ KNK_rshift
+ = SDL_SCANCODE_RSHIFT
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_lctrl
+
+ KNK_lctrl
+ = SDL_SCANCODE_LCTRL
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_rctrl
+
+ KNK_rctrl
+ = SDL_SCANCODE_RCTRL
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_lalt
+
+ KNK_lalt
+ = SDL_SCANCODE_LALT
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_ralt
+
+ KNK_ralt
+ = SDL_SCANCODE_RALT
+
+
+
+
+
+
+
+
+
+ const SDL_Scancode
+ const SDL_Scancode KNK_esc
+
+ KNK_esc
+ = SDL_SCANCODE_ESCAPE
+
+
+
+
+
+
+
+
+
+ const SDL_EventType
+ const SDL_EventType KN_KEYDOWN
+
+ KN_KEYDOWN
+ = SDL_KEYDOWN
+
+
+
+
+
+
+
+
+
+ const SDL_EventType
+ const SDL_EventType KN_KEYUP
+
+ KN_KEYUP
+ = SDL_KEYUP
+
+
+
+
+
+
+
+
+
+ const SDL_EventType
+ const SDL_EventType KN_QUIT
+
+ KN_QUIT
+ = SDL_QUIT
+
+
+
+
+
+
+
+
+
+ const SDL_EventType
+ const SDL_EventType KN_MOUSEBUTTONDOWN
+
+ KN_MOUSEBUTTONDOWN
+ = SDL_MOUSEBUTTONDOWN
+
+
+
+
+
+
+
+
+
+ const SDL_EventType
+ const SDL_EventType KN_MOUSEBUTTONUP
+
+ KN_MOUSEBUTTONUP
+ = SDL_MOUSEBUTTONUP
+
+
+
+
+
+
+
+
+
+ const SDL_EventType
+ const SDL_EventType KN_MOUSEMOTION
+
+ KN_MOUSEMOTION
+ = SDL_MOUSEMOTION
+
+
+
+
+
+
+
+
+
+ const SDL_EventType
+ const SDL_EventType KN_MOUSEWHEEL
+
+ KN_MOUSEWHEEL
+ = SDL_MOUSEWHEEL
+
+
+
+
+
+
+
+
+
+ const SDL_EventType
+ const SDL_EventType KN_TEXTINPUT
+
+ KN_TEXTINPUT
+ = SDL_TEXTINPUT
+
+
+
+
+
+
+
+
+
+ const SDL_KeyCode
+ const SDL_KeyCode KNK_ESCAPE
+
+ KNK_ESCAPE
+ = SDLK_ESCAPE
+
+
+
+
+
+
+
+
+
+ const SDL_KeyCode
+ const SDL_KeyCode KNK_RETURN
+
+ KNK_RETURN
+ = SDLK_RETURN
+
+
+
+
+
+
+
+
+
+ const SDL_KeyCode
+ const SDL_KeyCode KNK_BACKSPACE
+
+ KNK_BACKSPACE
+ = SDLK_BACKSPACE
+
+
+
+
+
+
+
+
+
+ const int
+ const int KN_BUTTON_LEFT
+
+ KN_BUTTON_LEFT
+ = SDL_BUTTON_LEFT
+
+
+
+
+
+
+
+
+
+ const int
+ const int KN_BUTTON_MIDDLE
+
+ KN_BUTTON_MIDDLE
+ = SDL_BUTTON_MIDDLE
+
+
+
+
+
+
+
+
+
+ const int
+ const int KN_BUTTON_RIGHT
+
+ KN_BUTTON_RIGHT
+ = SDL_BUTTON_RIGHT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragmaonce
+
+#include<SDL.h>
+
+typedefSDL_Scancode[KN_KEYS];
+typedefSDL_Event[KN_Event];
+
+constSDL_Scancode[KNK_w]=SDL_SCANCODE_W;
+constSDL_Scancode[KNK_a]=SDL_SCANCODE_A;
+constSDL_Scancode[KNK_s]=SDL_SCANCODE_S;
+constSDL_Scancode[KNK_d]=SDL_SCANCODE_D;
+constSDL_Scancode[KNK_q]=SDL_SCANCODE_Q;
+constSDL_Scancode[KNK_e]=SDL_SCANCODE_E;
+constSDL_Scancode[KNK_r]=SDL_SCANCODE_R;
+constSDL_Scancode[KNK_f]=SDL_SCANCODE_F;
+constSDL_Scancode[KNK_t]=SDL_SCANCODE_T;
+constSDL_Scancode[KNK_g]=SDL_SCANCODE_G;
+constSDL_Scancode[KNK_y]=SDL_SCANCODE_Y;
+constSDL_Scancode[KNK_h]=SDL_SCANCODE_H;
+constSDL_Scancode[KNK_u]=SDL_SCANCODE_U;
+constSDL_Scancode[KNK_j]=SDL_SCANCODE_J;
+constSDL_Scancode[KNK_i]=SDL_SCANCODE_I;
+constSDL_Scancode[KNK_k]=SDL_SCANCODE_K;
+constSDL_Scancode[KNK_o]=SDL_SCANCODE_O;
+constSDL_Scancode[KNK_l]=SDL_SCANCODE_L;
+constSDL_Scancode[KNK_p]=SDL_SCANCODE_P;
+constSDL_Scancode[KNK_z]=SDL_SCANCODE_Z;
+constSDL_Scancode[KNK_x]=SDL_SCANCODE_X;
+constSDL_Scancode[KNK_c]=SDL_SCANCODE_C;
+constSDL_Scancode[KNK_v]=SDL_SCANCODE_V;
+constSDL_Scancode[KNK_b]=SDL_SCANCODE_B;
+constSDL_Scancode[KNK_n]=SDL_SCANCODE_N;
+constSDL_Scancode[KNK_m]=SDL_SCANCODE_M;
+constSDL_Scancode[KNK_0]=SDL_SCANCODE_0;
+constSDL_Scancode[KNK_1]=SDL_SCANCODE_1;
+constSDL_Scancode[KNK_2]=SDL_SCANCODE_2;
+constSDL_Scancode[KNK_3]=SDL_SCANCODE_3;
+constSDL_Scancode[KNK_4]=SDL_SCANCODE_4;
+constSDL_Scancode[KNK_5]=SDL_SCANCODE_5;
+constSDL_Scancode[KNK_6]=SDL_SCANCODE_6;
+constSDL_Scancode[KNK_7]=SDL_SCANCODE_7;
+constSDL_Scancode[KNK_8]=SDL_SCANCODE_8;
+constSDL_Scancode[KNK_9]=SDL_SCANCODE_9;
+constSDL_Scancode[KNK_left]=SDL_SCANCODE_LEFT;
+constSDL_Scancode[KNK_right]=SDL_SCANCODE_RIGHT;
+constSDL_Scancode[KNK_down]=SDL_SCANCODE_DOWN;
+constSDL_Scancode[KNK_up]=SDL_SCANCODE_UP;
+constSDL_Scancode[KNK_space]=SDL_SCANCODE_SPACE;
+constSDL_Scancode[KNK_return]=SDL_SCANCODE_RETURN;
+constSDL_Scancode[KNK_backspace]=SDL_SCANCODE_BACKSPACE;
+constSDL_Scancode[KNK_tab]=SDL_SCANCODE_TAB;
+constSDL_Scancode[KNK_lshift]=SDL_SCANCODE_LSHIFT;
+constSDL_Scancode[KNK_rshift]=SDL_SCANCODE_RSHIFT;
+constSDL_Scancode[KNK_lctrl]=SDL_SCANCODE_LCTRL;
+constSDL_Scancode[KNK_rctrl]=SDL_SCANCODE_RCTRL;
+constSDL_Scancode[KNK_lalt]=SDL_SCANCODE_LALT;
+constSDL_Scancode[KNK_ralt]=SDL_SCANCODE_RALT;
+constSDL_Scancode[KNK_esc]=SDL_SCANCODE_ESCAPE;
+
+constSDL_EventType[KN_KEYDOWN]=SDL_KEYDOWN;
+constSDL_EventType[KN_KEYUP]=SDL_KEYUP;
+constSDL_EventType[KN_QUIT]=SDL_QUIT;
+constSDL_EventType[KN_MOUSEBUTTONDOWN]=SDL_MOUSEBUTTONDOWN;
+constSDL_EventType[KN_MOUSEBUTTONUP]=SDL_MOUSEBUTTONUP;
+constSDL_EventType[KN_MOUSEMOTION]=SDL_MOUSEMOTION;
+constSDL_EventType[KN_MOUSEWHEEL]=SDL_MOUSEWHEEL;
+constSDL_EventType[KN_TEXTINPUT]=SDL_TEXTINPUT;
+
+constSDL_KeyCode[KNK_ESCAPE]=SDLK_ESCAPE;
+constSDL_KeyCode[KNK_RETURN]=SDLK_RETURN;
+constSDL_KeyCode[KNK_BACKSPACE]=SDLK_BACKSPACE;
+
+constint[KN_BUTTON_LEFT]=SDL_BUTTON_LEFT;
+constint[KN_BUTTON_MIDDLE]=SDL_BUTTON_MIDDLE;
+constint[KN_BUTTON_RIGHT]=SDL_BUTTON_RIGHT;
+
+
+
+
+
diff --git a/docs/source/xml/_draw_8hpp.xml b/docs/source/xml/_draw_8hpp.xml
new file mode 100644
index 0000000..aca4c2a
--- /dev/null
+++ b/docs/source/xml/_draw_8hpp.xml
@@ -0,0 +1,136 @@
+
+
+
+ Draw.hpp
+ SDL.h
+ RenderWindow.hpp
+ Rect.hpp
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn
+ kn::draw
+
+
+
+
+
+#pragmaonce
+
+#include<SDL.h>
+
+#include"[RenderWindow.hpp]"
+#include"[Rect.hpp]"
+
+
+namespace[kn]{
+namespacedraw{
+
+void[rect]([RenderWindow]&window,[Rect]&[rect],constSDL_Colorcolor,intthickness=0);
+
+}
+}
+
+
+
+
diff --git a/docs/source/xml/_font_8hpp.xml b/docs/source/xml/_font_8hpp.xml
new file mode 100644
index 0000000..f8ec6d5
--- /dev/null
+++ b/docs/source/xml/_font_8hpp.xml
@@ -0,0 +1,160 @@
+
+
+
+ Font.hpp
+ memory
+ string
+ SDL.h
+ SDL_ttf.h
+ Texture.hpp
+ RenderWindow.hpp
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::Font
+ kn
+
+
+
+
+
+#pragmaonce
+
+#include<memory>
+#include<string>
+
+#include<SDL.h>
+#include<SDL_ttf.h>
+
+#include"[Texture.hpp]"
+#include"[RenderWindow.hpp]"
+
+
+namespace[kn]{
+
+class[Font]final{
+public:
+[Font]([RenderWindow]&window,conststd::string&fileDir,intptSize);
+[~Font](){if(font)TTF_CloseFont(font);}
+
+std::shared_ptr<Texture>[render](conststd::string&text,boolantialias,SDL_Colorcolor,intwrapLength=0);
+
+private:
+[RenderWindow]&window;
+TTF_Font*font;
+};
+
+}
+
+
+
+
diff --git a/docs/source/xml/_globals_8hpp.xml b/docs/source/xml/_globals_8hpp.xml
new file mode 100644
index 0000000..6a7730b
--- /dev/null
+++ b/docs/source/xml/_globals_8hpp.xml
@@ -0,0 +1,144 @@
+
+
+
+ Globals.hpp
+ Math.hpp
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+ D:/Code/c++/Kraken-Engine/include/Rect.hpp
+ D:/Code/c++/Kraken-Engine/include/RenderWindow.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn
+
+
+
+
+
+#pragmaonce
+
+#include"[Math.hpp]"
+
+
+namespace[kn]{
+
+externconstmath::Vec2[SCREEN_SIZE];
+
+externfloat[GRAVITY];
+
+}
+
+
+
+
diff --git a/docs/source/xml/_input_8hpp.xml b/docs/source/xml/_input_8hpp.xml
new file mode 100644
index 0000000..bb8f1d3
--- /dev/null
+++ b/docs/source/xml/_input_8hpp.xml
@@ -0,0 +1,80 @@
+
+
+
+ Input.hpp
+ vector
+ SDL.h
+ Math.hpp
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn
+ kn::input
+
+
+
+
+
+#pragmaonce
+
+#include<vector>
+
+#include<SDL.h>
+
+#include"[Math.hpp]"
+
+
+namespace[kn]{
+namespaceinput{
+
+[math::Vec2][getMousePos](intscale=1);
+
+constint[getMouseButtonPressed]();
+
+constUint8*[getKeysPressed]();
+
+[math::Vec2][getVector](
+conststd::vector<SDL_Scancode>&left={},
+conststd::vector<SDL_Scancode>&right={},
+conststd::vector<SDL_Scancode>&up={},
+conststd::vector<SDL_Scancode>&down={}
+);
+
+}
+}
+
+
+
+
diff --git a/docs/source/xml/_kraken_engine_8hpp.xml b/docs/source/xml/_kraken_engine_8hpp.xml
new file mode 100644
index 0000000..410293c
--- /dev/null
+++ b/docs/source/xml/_kraken_engine_8hpp.xml
@@ -0,0 +1,281 @@
+
+
+
+ KrakenEngine.hpp
+ Constants.hpp
+ Draw.hpp
+ Font.hpp
+ Globals.hpp
+ Input.hpp
+ Math.hpp
+ Rect.hpp
+ RenderWindow.hpp
+ Sprite.hpp
+ Texture.hpp
+ TextureCache.hpp
+ TileMap.hpp
+ TileTypes.hpp
+ Time.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SDL_MAIN_HANDLED
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#pragmaonce
+#defineSDL_MAIN_HANDLED
+
+#include"[Constants.hpp]"
+#include"[Draw.hpp]"
+#include"[Font.hpp]"
+#include"[Globals.hpp]"
+#include"[Input.hpp]"
+#include"[Math.hpp]"
+#include"[Rect.hpp]"
+#include"[RenderWindow.hpp]"
+#include"[Sprite.hpp]"
+#include"[Texture.hpp]"
+#include"[TextureCache.hpp]"
+#include"[TileMap.hpp]"
+#include"[TileTypes.hpp]"
+#include"[Time.hpp]"
+
+
+
+
diff --git a/docs/source/xml/_math_8hpp.xml b/docs/source/xml/_math_8hpp.xml
new file mode 100644
index 0000000..95d01a0
--- /dev/null
+++ b/docs/source/xml/_math_8hpp.xml
@@ -0,0 +1,194 @@
+
+
+
+ Math.hpp
+ D:/Code/c++/Kraken-Engine/include/Globals.hpp
+ D:/Code/c++/Kraken-Engine/include/Input.hpp
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+ D:/Code/c++/Kraken-Engine/include/Rect.hpp
+ D:/Code/c++/Kraken-Engine/include/RenderWindow.hpp
+ D:/Code/c++/Kraken-Engine/include/Sprite.hpp
+ D:/Code/c++/Kraken-Engine/include/Texture.hpp
+ D:/Code/c++/Kraken-Engine/include/TextureCache.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::math::Vec2
+ kn
+ kn::math
+
+
+
+
+
+#pragmaonce
+
+
+namespace[kn]{
+namespacemath{
+
+struct[Vec2]{
+float[x]=0.0f;
+float[y]=0.0f;
+
+[Vec2]()=default;
+[Vec2](float[x],float[y]);
+[Vec2](int[x],int[y]);
+[Vec2](float[x],int[y]);
+[Vec2](int[x],float[y]);
+
+static[Vec2][ZERO]();
+
+float[getLength]()const;
+
+void[normalize]();
+
+float[distanceTo](const[Vec2]&other)const;
+
+[Vec2][operator*](floatscalar)const;
+[Vec2][operator/](floatscalar)const;
+[Vec2][operator+](const[Vec2]&other)const;
+[Vec2][operator-](const[Vec2]&other)const;
+[Vec2][operator+=](const[Vec2]&other);
+bool[operator==](const[Vec2]&other)const;
+bool[operator!=](const[Vec2]&other)const;
+};
+
+[Vec2][clampVec]([Vec2]vec,const[Vec2]&min,const[Vec2]&max);
+
+[Vec2][lerpVec](const[Vec2]&a,const[Vec2]&b,floatt);
+
+template<classdigit>
+digit[clamp](digitval,digitmin,digitmax);
+
+}
+}
+
+
+
+
diff --git a/docs/source/xml/_rect_8hpp.xml b/docs/source/xml/_rect_8hpp.xml
new file mode 100644
index 0000000..e59c3c1
--- /dev/null
+++ b/docs/source/xml/_rect_8hpp.xml
@@ -0,0 +1,197 @@
+
+
+
+ Rect.hpp
+ SDL.h
+ Math.hpp
+ Globals.hpp
+ D:/Code/c++/Kraken-Engine/include/Draw.hpp
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+ D:/Code/c++/Kraken-Engine/include/Sprite.hpp
+ D:/Code/c++/Kraken-Engine/include/Texture.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::Rect
+ kn
+
+
+
+
+
+#pragmaonce
+
+#include<SDL.h>
+
+#include"[Math.hpp]"
+#include"[Globals.hpp]"
+
+
+namespace[kn]{
+
+struct[Rect]:publicSDL_FRect{
+[Rect]()=default;
+
+[Rect](floatx,floaty,floatw,floath):SDL_FRect{x,y,w,h}{}
+[Rect](intx,inty,intw,inth):SDL_FRect{(float)x,(float)y,(float)w,(float)h}{}
+
+[math::Vec2][getPos]();
+
+[math::Vec2][getSize]();
+
+void[setSize](const[math::Vec2]&size);
+
+bool[collidePoint](const[math::Vec2]&pos);
+
+bool[collideRect](const[Rect]&rect);
+
+void[clamp](const[math::Vec2]&min={},const[math::Vec2]&max=[SCREEN_SIZE]);
+
+void[setCenter](const[math::Vec2]&pos);
+void[setLeft](floatx);
+void[setRight](floatx);
+void[setTop](floaty);
+void[setBottom](floaty);
+void[setTopLeft](const[math::Vec2]&pos);
+void[setTopMid](const[math::Vec2]&pos);
+void[setTopRight](const[math::Vec2]&pos);
+void[setBottomLeft](const[math::Vec2]&pos);
+void[setBottomMid](const[math::Vec2]&pos);
+void[setBottomRight](const[math::Vec2]&pos);
+void[setLeftMid](const[math::Vec2]&pos);
+void[setRightMid](const[math::Vec2]&pos);
+
+[math::Vec2][getCenter]();
+float[getLeft]();
+float[getRight]();
+float[getTop]();
+float[getBottom]();
+[math::Vec2][getTopLeft]();
+[math::Vec2][getTopMid]();
+[math::Vec2][getTopRight]();
+[math::Vec2][getBottomLeft]();
+[math::Vec2][getBottomMid]();
+[math::Vec2][getBottomRight]();
+[math::Vec2][getLeftMid]();
+[math::Vec2][getRightMid]();
+};
+
+}
+
+
+
+
diff --git a/docs/source/xml/_render_window_8hpp.xml b/docs/source/xml/_render_window_8hpp.xml
new file mode 100644
index 0000000..4192d72
--- /dev/null
+++ b/docs/source/xml/_render_window_8hpp.xml
@@ -0,0 +1,215 @@
+
+
+
+ RenderWindow.hpp
+ vector
+ memory
+ SDL.h
+ SDL_image.h
+ SDL_ttf.h
+ SDL_mixer.h
+ Texture.hpp
+ Math.hpp
+ Constants.hpp
+ Globals.hpp
+ D:/Code/c++/Kraken-Engine/include/Draw.hpp
+ D:/Code/c++/Kraken-Engine/include/Font.hpp
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+ D:/Code/c++/Kraken-Engine/include/Sprite.hpp
+ D:/Code/c++/Kraken-Engine/include/TextureCache.hpp
+ D:/Code/c++/Kraken-Engine/include/TileMap.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::RenderWindow
+ kn
+
+
+
+
+
+#pragmaonce
+
+#include<vector>
+#include<memory>
+
+#include<SDL.h>
+#include<SDL_image.h>
+#include<SDL_ttf.h>
+#include<SDL_mixer.h>
+
+#include"[Texture.hpp]"
+#include"[Math.hpp]"
+#include"[Constants.hpp]"
+#include"[Globals.hpp]"
+
+
+namespace[kn]{
+
+class[RenderWindow]final{
+public:
+[RenderWindow](conststd::string&title="Kraken",intscale=1,boolfullscreen=false);
+[~RenderWindow]();
+
+void[cls](SDL_Colorcolor={0,0,0,255});
+
+void[flip]();
+
+void[blit](conststd::shared_ptr<Texture>&texture,[Rect]crop,[Rect]rect);
+
+void[blit](conststd::shared_ptr<Texture>&texture,const[math::Vec2]&position);
+
+void[blitEx](conststd::shared_ptr<Texture>&texture,[Rect]crop,[Rect]rect,doubleangle=0.0,boolflipX=false,boolflipY=false);
+
+void[blitEx](conststd::shared_ptr<Texture>&texture,const[math::Vec2]&position,doubleangle=0.0,boolflipX=false,boolflipY=false);
+
+SDL_Renderer*[getRenderer](){returnrenderer;}
+
+conststd::vector<KN_Event>&[getEvents]();
+
+private:
+SDL_Renderer*renderer=nullptr;
+SDL_Window*window=nullptr;
+
+[KN_Event]event;
+std::vector<SDL_Event>events;
+};
+
+}
+
+
+
+
diff --git a/docs/source/xml/_sprite_8hpp.xml b/docs/source/xml/_sprite_8hpp.xml
new file mode 100644
index 0000000..c9813b4
--- /dev/null
+++ b/docs/source/xml/_sprite_8hpp.xml
@@ -0,0 +1,224 @@
+
+
+
+ Sprite.hpp
+ memory
+ vector
+ SDL.h
+ Rect.hpp
+ Texture.hpp
+ Math.hpp
+ RenderWindow.hpp
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+ D:/Code/c++/Kraken-Engine/include/TileMap.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::Sprite
+ kn
+
+
+
+
+
+#pragmaonce
+
+#include<memory>
+#include<vector>
+
+#include<SDL.h>
+
+#include"[Rect.hpp]"
+#include"[Texture.hpp]"
+#include"[Math.hpp]"
+#include"[RenderWindow.hpp]"
+
+
+namespace[kn]{
+
+class[Sprite]{
+protected:
+[RenderWindow]&[window];
+std::shared_ptr<Texture>[texture];
+
+bool[onGround]=false;
+bool[onCeiling]=false;
+
+template<typenameT>
+void[moveAndCollide](doubledeltaTime,conststd::vector<std::shared_ptr<T>>&others){
+[onGround]=false;
+[onCeiling]=false;
+
+[position]+=([velocity]*deltaTime);
+[rect].x=[position].[x]-[rect].w/2.0f;
+
+for(constauto&sprite:others){
+if(sprite.get()!=this){
+if([rect].[collideRect](sprite->rect)){
+if([velocity].[x]>0){
+[rect].[setRight](sprite->rect.getLeft());
+}elseif([velocity].[x]<0){
+[rect].[setLeft](sprite->rect.getRight());
+}
+
+[velocity].[x]=0;
+[position]=[rect].[getCenter]();
+}
+}
+}
+
+[position].[y]+=([velocity].[y]*deltaTime);
+[rect].y=[position].[y]-[rect].h/2.0f;
+
+for(constauto&sprite:others){
+if(sprite.get()!=this){
+if([rect].[collideRect](sprite->rect)){
+if([velocity].[y]>0){
+[rect].[setBottom](sprite->rect.getTop());
+[onGround]=true;
+}elseif([velocity].[y]<0){
+[rect].[setTop](sprite->rect.getBottom());
+[onCeiling]=true;
+}
+
+[velocity].[y]=0;
+[position]=[rect].[getCenter]();
+}
+}
+}
+}
+
+public:
+[Sprite]([RenderWindow]&[window],std::shared_ptr<Texture>[texture]);
+[~Sprite]()=default;
+
+std::shared_ptr<Texture>[getTexture]()const;
+
+[Rect][crop]={0,0,0,0};
+[Rect][rect];
+[math::Vec2][position];
+[math::Vec2][direction];
+[math::Vec2][velocity];
+
+};
+
+}
+
+
+
+
diff --git a/docs/source/xml/_texture_8hpp.xml b/docs/source/xml/_texture_8hpp.xml
new file mode 100644
index 0000000..e63f753
--- /dev/null
+++ b/docs/source/xml/_texture_8hpp.xml
@@ -0,0 +1,177 @@
+
+
+
+ Texture.hpp
+ SDL.h
+ Math.hpp
+ Rect.hpp
+ D:/Code/c++/Kraken-Engine/include/Font.hpp
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+ D:/Code/c++/Kraken-Engine/include/RenderWindow.hpp
+ D:/Code/c++/Kraken-Engine/include/Sprite.hpp
+ D:/Code/c++/Kraken-Engine/include/TextureCache.hpp
+ D:/Code/c++/Kraken-Engine/include/TileTypes.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::Texture
+ kn
+
+
+
+
+
+#pragmaonce
+
+#include<SDL.h>
+
+#include"[Math.hpp]"
+#include"[Rect.hpp]"
+
+
+namespace[kn]{
+
+class[Texture]final{
+public:
+explicit[Texture](SDL_Texture*texture);
+
+[~Texture](){if(texture)SDL_DestroyTexture(texture);}
+
+[math::Vec2][getSize]()const;
+
+[Rect][getRect]()const;
+
+SDL_Texture*[getSDLTexture]()const;
+
+void[setSize](const[math::Vec2]&size);
+
+void[scaleBy](floatfactor);
+
+void[fitWidth](floatwidth);
+
+void[fitHeight](floatheight);
+
+private:
+SDL_Texture*texture=nullptr;
+[Rect]rect={};
+
+voidquery();
+};
+
+}
+
+
+
+
diff --git a/docs/source/xml/_texture_cache_8hpp.xml b/docs/source/xml/_texture_cache_8hpp.xml
new file mode 100644
index 0000000..267455e
--- /dev/null
+++ b/docs/source/xml/_texture_cache_8hpp.xml
@@ -0,0 +1,180 @@
+
+
+
+ TextureCache.hpp
+ map
+ memory
+ RenderWindow.hpp
+ Texture.hpp
+ Math.hpp
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+ D:/Code/c++/Kraken-Engine/include/TileMap.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::TextureCache
+ kn
+
+
+
+
+
+#pragmaonce
+
+#include<map>
+#include<memory>
+
+#include"[RenderWindow.hpp]"
+#include"[Texture.hpp]"
+#include"[Math.hpp]"
+
+
+namespace[kn]{
+
+class[TextureCache]final{
+public:
+explicit[TextureCache]([RenderWindow]&window):window(window){}
+
+[~TextureCache](){[unloadAll]();};
+
+[[maybe_unused]]
+std::shared_ptr<Texture>[load](conststd::string&name,conststd::string&path);
+
+[[maybe_unused]]
+std::shared_ptr<Texture>[create](conststd::string&name,const[math::Vec2]&size,SDL_Colorcolor);
+
+[[maybe_unused]]
+std::shared_ptr<Texture>[move](conststd::string&name,std::shared_ptr<Texture>texture);
+
+conststd::map<std::string,std::shared_ptr<Texture>>&[getCache]()const;
+
+void[unload](conststd::string&name);
+
+void[unloadAll]();
+
+std::shared_ptr<Texture>[getTexture](conststd::string&name)const;
+
+private:
+[RenderWindow]&window;
+std::map<std::string,std::shared_ptr<Texture>>textures;
+};
+
+}
+
+
+
+
diff --git a/docs/source/xml/_tile_map_8hpp.xml b/docs/source/xml/_tile_map_8hpp.xml
new file mode 100644
index 0000000..5cb8f58
--- /dev/null
+++ b/docs/source/xml/_tile_map_8hpp.xml
@@ -0,0 +1,226 @@
+
+
+
+ TileMap.hpp
+ memory
+ vector
+ string
+ tmxlite/Map.hpp
+ RenderWindow.hpp
+ TileTypes.hpp
+ TextureCache.hpp
+ Sprite.hpp
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::TileMap
+ kn
+
+
+
+
+
+#pragmaonce
+
+#include<memory>
+#include<vector>
+#include<string>
+
+#include"tmxlite/Map.hpp"
+
+#include"[RenderWindow.hpp]"
+#include"[TileTypes.hpp]"
+#include"[TextureCache.hpp]"
+#include"[Sprite.hpp]"
+
+
+namespace[kn]{
+
+class[TileMap]final{
+public:
+[TileMap]([RenderWindow]&window,[TextureCache]&textureCache,conststd::string&tmxPath);
+[~TileMap]()=default;
+
+void[drawTiles]();
+
+void[drawObjects]();
+
+void[drawAll]();
+
+conststd::vector<Object>&[getObjects]()const;
+
+private:
+[RenderWindow]&window;
+tmx::Mapm_map;
+
+std::vector<Tile>tileVec;
+std::vector<Object>objectVec;
+std::map<int,std::shared_ptr<Texture>>tileSetMap;
+};
+
+}
+
+
+
+
diff --git a/docs/source/xml/_tile_types_8hpp.xml b/docs/source/xml/_tile_types_8hpp.xml
new file mode 100644
index 0000000..697ab16
--- /dev/null
+++ b/docs/source/xml/_tile_types_8hpp.xml
@@ -0,0 +1,122 @@
+
+
+
+ TileTypes.hpp
+ memory
+ string
+ Texture.hpp
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+ D:/Code/c++/Kraken-Engine/include/TileMap.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::Tile
+ kn::Object
+ kn
+
+
+
+
+
+#pragmaonce
+
+#include<memory>
+#include<string>
+
+#include"[Texture.hpp]"
+
+
+namespace[kn]{
+
+struct[Tile]{
+[Tile](std::shared_ptr<Texture>[texture],[Rect][crop],[Rect][rect])
+:[texture]([texture]),[crop]([crop]),[rect]([rect]){}
+[~Tile]()=default;
+
+std::shared_ptr<Texture>[texture];
+[Rect][crop];
+[Rect][rect];
+};
+
+struct[Object]final:public[Tile]{
+[Object](std::shared_ptr<Texture>[texture],[Rect][crop],[Rect][rect],std::string[name],std::string[type])
+:[Tile]([texture],[crop],[rect]),[name]([name]),[type]([type]){}
+[~Object]()=default;
+
+std::string[name];
+std::string[type];
+};
+
+}
+
+
+
+
diff --git a/docs/source/xml/_time_8hpp.xml b/docs/source/xml/_time_8hpp.xml
new file mode 100644
index 0000000..a7053cd
--- /dev/null
+++ b/docs/source/xml/_time_8hpp.xml
@@ -0,0 +1,63 @@
+
+
+
+ Time.hpp
+ SDL.h
+ D:/Code/c++/Kraken-Engine/include/KrakenEngine.hpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::time::Clock
+ kn
+ kn::time
+
+
+
+
+
+#pragmaonce
+
+#include<SDL.h>
+
+
+namespace[kn]{
+namespacetime{
+
+class[Clock]final{
+public:
+[Clock]()=default;
+[~Clock]()=default;
+
+double[tick](intframeRate=360);
+
+private:
+uint64_tnow,last=SDL_GetTicks64();
+uint64_trawTime,frameTime=0;
+};
+
+}
+}
+
+
+
+
diff --git a/docs/source/xml/classkn_1_1_font.xml b/docs/source/xml/classkn_1_1_font.xml
new file mode 100644
index 0000000..643aab1
--- /dev/null
+++ b/docs/source/xml/classkn_1_1_font.xml
@@ -0,0 +1,187 @@
+
+
+
+ kn::Font
+ Font.hpp
+
+
+ [RenderWindow] &
+ RenderWindow& kn::Font::window
+
+ window
+ kn::Font::window
+
+
+
+
+
+
+
+
+
+ TTF_Font *
+ TTF_Font* kn::Font::font
+
+ font
+ kn::Font::font
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::Font::Font
+ (RenderWindow &window, const std::string &fileDir, int ptSize)
+ Font
+ kn::Font::Font
+
+ [RenderWindow] &
+ window
+
+
+ const std::string &
+ fileDir
+
+
+ int
+ ptSize
+
+
+Create a font.
+
+
+
+
+window
+
+
+The renderer context.
+
+
+
+
+fileDir
+
+
+The directory of the font file.
+
+
+
+
+ptSize
+
+
+The point size of the font.
+
+
+
+
+
+
+
+
+
+
+
+ kn::Font::~Font
+ ()
+ ~Font
+ kn::Font::~Font
+
+
+
+
+
+
+
+
+
+ std::shared_ptr< [Texture] >
+ std::shared_ptr< Texture > kn::Font::render
+ (const std::string &text, bool antialias, SDL_Color color, int wrapLength=0)
+ render
+ kn::Font::render
+
+ const std::string &
+ text
+
+
+ bool
+ antialias
+
+
+ SDL_Color
+ color
+
+
+ int
+ wrapLength
+ 0
+
+
+Render text.
+
+
+
+
+text
+
+
+The text to render.
+
+
+
+
+antialias
+
+
+Whether to antialias the text.
+
+
+
+
+color
+
+
+The color of the text.
+
+
+
+
+wrapLength
+
+
+The length to wrap the text.
+
+
+
+The rendered text.
+
+
+
+
+
+
+
+
+
+A class to render text.
+
+
+
+
+
+ kn::Fontfont
+ kn::FontFont
+ kn::Fontrender
+ kn::Fontwindow
+ kn::Font~Font
+
+
+
diff --git a/docs/source/xml/classkn_1_1_render_window.xml b/docs/source/xml/classkn_1_1_render_window.xml
new file mode 100644
index 0000000..6fbbe23
--- /dev/null
+++ b/docs/source/xml/classkn_1_1_render_window.xml
@@ -0,0 +1,511 @@
+
+
+
+ kn::RenderWindow
+ RenderWindow.hpp
+
+
+ SDL_Renderer *
+ SDL_Renderer* kn::RenderWindow::renderer
+
+ renderer
+ kn::RenderWindow::renderer
+ = nullptr
+
+
+
+
+
+
+
+
+
+ SDL_Window *
+ SDL_Window* kn::RenderWindow::window
+
+ window
+ kn::RenderWindow::window
+ = nullptr
+
+
+
+
+
+
+
+
+
+ [KN_Event]
+ KN_Event kn::RenderWindow::event
+
+ event
+ kn::RenderWindow::event
+
+
+
+
+
+
+
+
+
+ std::vector< SDL_Event >
+ std::vector<SDL_Event> kn::RenderWindow::events
+
+ events
+ kn::RenderWindow::events
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::RenderWindow::RenderWindow
+ (const std::string &title="Kraken", int scale=1, bool fullscreen=false)
+ RenderWindow
+ kn::RenderWindow::RenderWindow
+
+ const std::string &
+ title
+ "Kraken"
+
+
+ int
+ scale
+ 1
+
+
+ bool
+ fullscreen
+ false
+
+
+Create a window.
+
+
+
+
+title
+
+
+The title of the window.
+
+
+
+
+scale
+
+
+The scale of the window.
+
+
+
+
+fullscreen
+
+
+Whether to make the window fullscreen.
+
+
+
+
+
+
+
+
+
+
+
+ kn::RenderWindow::~RenderWindow
+ ()
+ ~RenderWindow
+ kn::RenderWindow::~RenderWindow
+
+
+
+
+
+
+
+
+
+ void
+ void kn::RenderWindow::cls
+ (SDL_Color color={ 0, 0, 0, 255 })
+ cls
+ kn::RenderWindow::cls
+
+ SDL_Color
+ color
+ { 0, 0, 0, 255 }
+
+
+Clear the screen.
+
+
+
+
+color
+
+
+The color to clear the screen.
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::RenderWindow::flip
+ ()
+ flip
+ kn::RenderWindow::flip
+
+Flip the render frame buffer.
+
+
+
+
+
+
+
+
+ void
+ void kn::RenderWindow::blit
+ (const std::shared_ptr< Texture > &texture, Rect crop, Rect rect)
+ blit
+ kn::RenderWindow::blit
+
+ const std::shared_ptr< [Texture] > &
+ texture
+
+
+ [Rect]
+ crop
+
+
+ [Rect]
+ rect
+
+
+Draw a texture using rects.
+
+
+
+
+texture
+
+
+The texture to draw.
+
+
+
+
+crop
+
+
+The rectangle to draw from.
+
+
+
+
+rect
+
+
+The rectangle to draw to.
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::RenderWindow::blit
+ (const std::shared_ptr< Texture > &texture, const math::Vec2 &position)
+ blit
+ kn::RenderWindow::blit
+
+ const std::shared_ptr< [Texture] > &
+ texture
+
+
+ const [math::Vec2] &
+ position
+
+
+Draw a texture to a position.
+
+
+
+
+texture
+
+
+The texture to draw.
+
+
+
+
+position
+
+
+The position to draw at.
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::RenderWindow::blitEx
+ (const std::shared_ptr< Texture > &texture, Rect crop, Rect rect, double angle=0.0, bool flipX=false, bool flipY=false)
+ blitEx
+ kn::RenderWindow::blitEx
+
+ const std::shared_ptr< [Texture] > &
+ texture
+
+
+ [Rect]
+ crop
+
+
+ [Rect]
+ rect
+
+
+ double
+ angle
+ 0.0
+
+
+ bool
+ flipX
+ false
+
+
+ bool
+ flipY
+ false
+
+
+Draw a texture using rects.
+
+
+
+
+texture
+
+
+The texture to draw.
+
+
+
+
+crop
+
+
+The rectangle to draw from.
+
+
+
+
+rect
+
+
+The rectangle to draw to.
+
+
+
+
+angle
+
+
+The angle to draw the texture.
+
+
+
+
+flipX
+
+
+Whether to flip the texture on the x-axis.
+
+
+
+
+flipY
+
+
+Whether to flip the texture on the y-axis.
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::RenderWindow::blitEx
+ (const std::shared_ptr< Texture > &texture, const math::Vec2 &position, double angle=0.0, bool flipX=false, bool flipY=false)
+ blitEx
+ kn::RenderWindow::blitEx
+
+ const std::shared_ptr< [Texture] > &
+ texture
+
+
+ const [math::Vec2] &
+ position
+
+
+ double
+ angle
+ 0.0
+
+
+ bool
+ flipX
+ false
+
+
+ bool
+ flipY
+ false
+
+
+Draw a texture to a position.
+
+
+
+
+texture
+
+
+The texture to draw.
+
+
+
+
+position
+
+
+The position to draw at.
+
+
+
+
+angle
+
+
+The angle to draw the texture.
+
+
+
+
+flipX
+
+
+Whether to flip the texture on the x-axis.
+
+
+
+
+flipY
+
+
+Whether to flip the texture on the y-axis.
+
+
+
+
+
+
+
+
+
+
+ SDL_Renderer *
+ SDL_Renderer * kn::RenderWindow::getRenderer
+ ()
+ getRenderer
+ kn::RenderWindow::getRenderer
+
+Get the window renderer.
+
+
+The window renderer.
+
+
+
+
+
+
+
+
+ const std::vector< [KN_Event] > &
+ const std::vector< KN_Event > & kn::RenderWindow::getEvents
+ ()
+ getEvents
+ kn::RenderWindow::getEvents
+
+Get user events.
+
+
+The user events.
+
+
+
+
+
+
+
+
+
+The renderer context.
+
+
+This class must be a singleton.
+
+
+
+
+
+ kn::RenderWindowblit
+ kn::RenderWindowblit
+ kn::RenderWindowblitEx
+ kn::RenderWindowblitEx
+ kn::RenderWindowcls
+ kn::RenderWindowevent
+ kn::RenderWindowevents
+ kn::RenderWindowflip
+ kn::RenderWindowgetEvents
+ kn::RenderWindowgetRenderer
+ kn::RenderWindowrenderer
+ kn::RenderWindowRenderWindow
+ kn::RenderWindowwindow
+ kn::RenderWindow~RenderWindow
+
+
+
diff --git a/docs/source/xml/classkn_1_1_sprite.xml b/docs/source/xml/classkn_1_1_sprite.xml
new file mode 100644
index 0000000..bd3e108
--- /dev/null
+++ b/docs/source/xml/classkn_1_1_sprite.xml
@@ -0,0 +1,322 @@
+
+
+
+ kn::Sprite
+ Sprite.hpp
+
+
+ [RenderWindow] &
+ RenderWindow& kn::Sprite::window
+
+ window
+ kn::Sprite::window
+
+
+
+
+
+
+
+
+
+ std::shared_ptr< [Texture] >
+ std::shared_ptr<Texture> kn::Sprite::texture
+
+ texture
+ kn::Sprite::texture
+
+
+
+
+
+
+
+
+
+ bool
+ bool kn::Sprite::onGround
+
+ onGround
+ kn::Sprite::onGround
+ = false
+
+
+
+
+
+
+
+
+
+ bool
+ bool kn::Sprite::onCeiling
+
+ onCeiling
+ kn::Sprite::onCeiling
+ = false
+
+
+
+
+
+
+
+
+
+
+
+ [Rect]
+ Rect kn::Sprite::crop
+
+ crop
+ kn::Sprite::crop
+ = { 0, 0, 0, 0 }
+
+
+
+
+
+
+
+
+
+ [Rect]
+ Rect kn::Sprite::rect
+
+ rect
+ kn::Sprite::rect
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Sprite::position
+
+ position
+ kn::Sprite::position
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Sprite::direction
+
+ direction
+ kn::Sprite::direction
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Sprite::velocity
+
+ velocity
+ kn::Sprite::velocity
+
+
+
+
+
+
+
+
+
+
+
+
+
+ typename T
+
+
+ void
+ void kn::Sprite::moveAndCollide
+ (double deltaTime, const std::vector< std::shared_ptr< T > > &others)
+ moveAndCollide
+ kn::Sprite::moveAndCollide
+
+ double
+ deltaTime
+
+
+ const std::vector< std::shared_ptr< T > > &
+ others
+
+
+Move the sprite while checking for collisions.
+
+
+
+
+deltaTime
+
+
+The time since the last frame.
+
+
+
+
+others
+
+
+The other sprites to check for collisions with.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::Sprite::Sprite
+ (RenderWindow &window, std::shared_ptr< Texture > texture)
+ Sprite
+ kn::Sprite::Sprite
+
+ [RenderWindow] &
+ window
+
+
+ std::shared_ptr< [Texture] >
+ texture
+
+
+Create a sprite.
+
+
+
+
+window
+
+
+The renderer context.
+
+
+
+
+texture
+
+
+The texture of the sprite.
+
+
+
+
+
+
+
+
+
+
+
+ kn::Sprite::~Sprite
+ ()=default
+ ~Sprite
+ kn::Sprite::~Sprite
+
+
+
+
+
+
+
+
+
+ std::shared_ptr< [Texture] >
+ std::shared_ptr< Texture > kn::Sprite::getTexture
+ () const
+ getTexture
+ kn::Sprite::getTexture
+
+Get the sprite's texture pointer.
+
+
+The sprite's texture pointer.
+
+
+
+
+
+
+
+
+
+A container for a sprite.
+
+
+This class is intended to be inherited from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ window
+
+
+ crop
+ rect
+
+
+ direction
+ position
+ velocity
+
+
+
+
+
+
+
+
+
+ kn::Spritecrop
+ kn::Spritedirection
+ kn::SpritegetTexture
+ kn::SpritemoveAndCollide
+ kn::SpriteonCeiling
+ kn::SpriteonGround
+ kn::Spriteposition
+ kn::Spriterect
+ kn::SpriteSprite
+ kn::Spritetexture
+ kn::Spritevelocity
+ kn::Spritewindow
+ kn::Sprite~Sprite
+
+
+
diff --git a/docs/source/xml/classkn_1_1_texture.xml b/docs/source/xml/classkn_1_1_texture.xml
new file mode 100644
index 0000000..71c09fe
--- /dev/null
+++ b/docs/source/xml/classkn_1_1_texture.xml
@@ -0,0 +1,300 @@
+
+
+
+ kn::Texture
+ Texture.hpp
+
+
+ SDL_Texture *
+ SDL_Texture* kn::Texture::texture
+
+ texture
+ kn::Texture::texture
+ = nullptr
+
+
+
+
+
+
+
+
+
+ [Rect]
+ Rect kn::Texture::rect
+
+ rect
+ kn::Texture::rect
+ = {}
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::Texture::Texture
+ (SDL_Texture *texture)
+ Texture
+ kn::Texture::Texture
+
+ SDL_Texture *
+ texture
+
+
+Create a texture.
+
+
+
+
+texture
+
+
+The SDL texture.
+
+
+
+This function is not meant to be used by the user.
+
+[TextureCache::load()]
+
+[TextureCache::create()]
+
+[TextureCache::move()]
+
+
+
+
+
+
+
+
+
+ kn::Texture::~Texture
+ ()
+ ~Texture
+ kn::Texture::~Texture
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Texture::getSize
+ () const
+ getSize
+ kn::Texture::getSize
+
+Get the size of the texture.
+
+
+The size of the texture.
+
+
+
+
+
+
+
+
+ [Rect]
+ Rect kn::Texture::getRect
+ () const
+ getRect
+ kn::Texture::getRect
+
+Get the rect of the texture.
+
+
+The rect of the texture.
+
+
+
+
+
+
+
+
+ SDL_Texture *
+ SDL_Texture * kn::Texture::getSDLTexture
+ () const
+ getSDLTexture
+ kn::Texture::getSDLTexture
+
+Get the SDL texture.
+
+
+The SDL texture.
+
+This function is not meant to be used by the user.
+
+
+
+
+
+
+
+
+ void
+ void kn::Texture::setSize
+ (const math::Vec2 &size)
+ setSize
+ kn::Texture::setSize
+
+ const [math::Vec2] &
+ size
+
+
+Set the size of the texture rect.
+
+
+
+
+size
+
+
+The size of the texture rect.
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Texture::scaleBy
+ (float factor)
+ scaleBy
+ kn::Texture::scaleBy
+
+ float
+ factor
+
+
+Scale the texture rect by a factor.
+
+
+
+
+factor
+
+
+The factor to scale by.
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Texture::fitWidth
+ (float width)
+ fitWidth
+ kn::Texture::fitWidth
+
+ float
+ width
+
+
+Fit the texture rect to a width while maintaining the aspect ratio.
+
+
+
+
+width
+
+
+The width to fit to.
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Texture::fitHeight
+ (float height)
+ fitHeight
+ kn::Texture::fitHeight
+
+ float
+ height
+
+
+Fit the texture rect to a height while maintaining the aspect ratio.
+
+
+
+
+height
+
+
+The height to fit to.
+
+
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Texture::query
+ ()
+ query
+ kn::Texture::query
+
+
+
+
+
+
+
+
+
+
+A texture container.
+
+
+
+
+
+ kn::TexturefitHeight
+ kn::TexturefitWidth
+ kn::TexturegetRect
+ kn::TexturegetSDLTexture
+ kn::TexturegetSize
+ kn::Texturequery
+ kn::Texturerect
+ kn::TexturescaleBy
+ kn::TexturesetSize
+ kn::Texturetexture
+ kn::TextureTexture
+ kn::Texture~Texture
+
+
+
diff --git a/docs/source/xml/classkn_1_1_texture_cache.xml b/docs/source/xml/classkn_1_1_texture_cache.xml
new file mode 100644
index 0000000..6e684cd
--- /dev/null
+++ b/docs/source/xml/classkn_1_1_texture_cache.xml
@@ -0,0 +1,341 @@
+
+
+
+ kn::TextureCache
+ TextureCache.hpp
+
+
+ [RenderWindow] &
+ RenderWindow& kn::TextureCache::window
+
+ window
+ kn::TextureCache::window
+
+
+
+
+
+
+
+
+
+ std::map< std::string, std::shared_ptr< [Texture] > >
+ std::map<std::string, std::shared_ptr<Texture> > kn::TextureCache::textures
+
+ textures
+ kn::TextureCache::textures
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::TextureCache::TextureCache
+ (RenderWindow &window)
+ TextureCache
+ kn::TextureCache::TextureCache
+
+ [RenderWindow] &
+ window
+
+
+Instantiate the texture cache.
+
+
+
+
+window
+
+
+The renderer context.
+
+
+
+
+
+
+
+
+
+
+
+ kn::TextureCache::~TextureCache
+ ()
+ ~TextureCache
+ kn::TextureCache::~TextureCache
+
+Unload the texture cache.
+
+
+
+
+
+
+
+
+ std::shared_ptr< [Texture] >
+ std::shared_ptr< Texture > kn::TextureCache::load
+ (const std::string &name, const std::string &path)
+ load
+ kn::TextureCache::load
+
+ const std::string &
+ name
+
+
+ const std::string &
+ path
+
+
+Load a texture file.
+
+
+
+
+name
+
+
+The name of the texture.
+
+
+
+
+path
+
+
+The path to the texture file.
+
+
+
+The texture pointer.
+
+
+
+
+
+
+
+
+ std::shared_ptr< [Texture] >
+ std::shared_ptr< Texture > kn::TextureCache::create
+ (const std::string &name, const math::Vec2 &size, SDL_Color color)
+ create
+ kn::TextureCache::create
+
+ const std::string &
+ name
+
+
+ const [math::Vec2] &
+ size
+
+
+ SDL_Color
+ color
+
+
+Create a solid texture.
+
+
+
+
+name
+
+
+The name of the texture.
+
+
+
+
+size
+
+
+The size of the texture.
+
+
+
+
+color
+
+
+The color of the texture.
+
+
+
+The texture pointer.
+
+
+
+
+
+
+
+
+ std::shared_ptr< [Texture] >
+ std::shared_ptr< Texture > kn::TextureCache::move
+ (const std::string &name, std::shared_ptr< Texture > texture)
+ move
+ kn::TextureCache::move
+
+ const std::string &
+ name
+
+
+ std::shared_ptr< [Texture] >
+ texture
+
+
+Move an existing texture.
+
+
+
+
+name
+
+
+The name of the texture.
+
+
+
+
+texture
+
+
+The texture to move.
+
+
+
+This function is recommended for loading fonts.
+
+The texture pointer.
+
+
+
+
+
+
+
+
+ const std::map< std::string, std::shared_ptr< [Texture] > > &
+ const std::map< std::string, std::shared_ptr< Texture > > & kn::TextureCache::getCache
+ () const
+ getCache
+ kn::TextureCache::getCache
+
+Get the const reference to the texture cache.
+
+
+The texture cache.
+
+
+
+
+
+
+
+
+ void
+ void kn::TextureCache::unload
+ (const std::string &name)
+ unload
+ kn::TextureCache::unload
+
+ const std::string &
+ name
+
+
+Unload a texture from cache.
+
+
+
+
+name
+
+
+The name of the texture.
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::TextureCache::unloadAll
+ ()
+ unloadAll
+ kn::TextureCache::unloadAll
+
+Unload all textures from cache.
+
+
+
+
+
+
+
+
+ std::shared_ptr< [Texture] >
+ std::shared_ptr< Texture > kn::TextureCache::getTexture
+ (const std::string &name) const
+ getTexture
+ kn::TextureCache::getTexture
+
+ const std::string &
+ name
+
+
+Get a texture pointer from cache.
+
+
+
+
+name
+
+
+The name of the texture.
+
+
+
+The texture pointer.
+
+
+
+
+
+
+
+
+
+A class to cache textures.
+
+
+This class must be a singleton.
+
+
+
+
+
+ kn::TextureCachecreate
+ kn::TextureCachegetCache
+ kn::TextureCachegetTexture
+ kn::TextureCacheload
+ kn::TextureCachemove
+ kn::TextureCacheTextureCache
+ kn::TextureCachetextures
+ kn::TextureCacheunload
+ kn::TextureCacheunloadAll
+ kn::TextureCachewindow
+ kn::TextureCache~TextureCache
+
+
+
diff --git a/docs/source/xml/classkn_1_1_tile_map.xml b/docs/source/xml/classkn_1_1_tile_map.xml
new file mode 100644
index 0000000..f71ee4b
--- /dev/null
+++ b/docs/source/xml/classkn_1_1_tile_map.xml
@@ -0,0 +1,231 @@
+
+
+
+ kn::TileMap
+ TileMap.hpp
+
+
+ [RenderWindow] &
+ RenderWindow& kn::TileMap::window
+
+ window
+ kn::TileMap::window
+
+
+
+
+
+
+
+
+
+ tmx::Map
+ tmx::Map kn::TileMap::m_map
+
+ m_map
+ kn::TileMap::m_map
+
+
+
+
+
+
+
+
+
+ std::vector< [Tile] >
+ std::vector<Tile> kn::TileMap::tileVec
+
+ tileVec
+ kn::TileMap::tileVec
+
+
+
+
+
+
+
+
+
+ std::vector< [Object] >
+ std::vector<Object> kn::TileMap::objectVec
+
+ objectVec
+ kn::TileMap::objectVec
+
+
+
+
+
+
+
+
+
+ std::map< int, std::shared_ptr< [Texture] > >
+ std::map<int, std::shared_ptr<Texture> > kn::TileMap::tileSetMap
+
+ tileSetMap
+ kn::TileMap::tileSetMap
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::TileMap::TileMap
+ (RenderWindow &window, TextureCache &textureCache, const std::string &tmxPath)
+ TileMap
+ kn::TileMap::TileMap
+
+ [RenderWindow] &
+ window
+
+
+ [TextureCache] &
+ textureCache
+
+
+ const std::string &
+ tmxPath
+
+
+Constructs a tile map from a TMX file.
+
+
+
+
+window
+
+
+The window to render to.
+
+
+
+
+textureCache
+
+
+The texture cache to use.
+
+
+
+
+tmxPath
+
+
+The path to the TMX file.
+
+
+
+
+
+
+
+
+
+
+
+ kn::TileMap::~TileMap
+ ()=default
+ ~TileMap
+ kn::TileMap::~TileMap
+
+
+
+
+
+
+
+
+
+ void
+ void kn::TileMap::drawTiles
+ ()
+ drawTiles
+ kn::TileMap::drawTiles
+
+Draw the tile map.
+
+
+
+
+
+
+
+
+ void
+ void kn::TileMap::drawObjects
+ ()
+ drawObjects
+ kn::TileMap::drawObjects
+
+Draw the objects in the tile map.
+
+
+
+
+
+
+
+
+ void
+ void kn::TileMap::drawAll
+ ()
+ drawAll
+ kn::TileMap::drawAll
+
+Draw the tile map and objects.
+
+
+
+
+
+
+
+
+ const std::vector< [Object] > &
+ const std::vector< Object > & kn::TileMap::getObjects
+ () const
+ getObjects
+ kn::TileMap::getObjects
+
+Get the tile map objects vector.
+
+
+The tile map objects vector.
+
+
+
+
+
+
+
+
+
+A class that represents a tile map.
+
+
+This class reads from TMX files generated by the Tiled map editor.
+
+
+
+ kn::TileMapdrawAll
+ kn::TileMapdrawObjects
+ kn::TileMapdrawTiles
+ kn::TileMapgetObjects
+ kn::TileMapm_map
+ kn::TileMapobjectVec
+ kn::TileMapTileMap
+ kn::TileMaptileSetMap
+ kn::TileMaptileVec
+ kn::TileMapwindow
+ kn::TileMap~TileMap
+
+
+
diff --git a/docs/source/xml/classkn_1_1time_1_1_clock.xml b/docs/source/xml/classkn_1_1time_1_1_clock.xml
new file mode 100644
index 0000000..79eb41f
--- /dev/null
+++ b/docs/source/xml/classkn_1_1time_1_1_clock.xml
@@ -0,0 +1,147 @@
+
+
+
+ kn::time::Clock
+ Time.hpp
+
+
+ uint64_t
+ uint64_t kn::time::Clock::now
+
+ now
+ kn::time::Clock::now
+
+
+
+
+
+
+
+
+
+ uint64_t
+ uint64_t kn::time::Clock::last
+
+ last
+ kn::time::Clock::last
+ = SDL_GetTicks64()
+
+
+
+
+
+
+
+
+
+ uint64_t
+ uint64_t kn::time::Clock::rawTime
+
+ rawTime
+ kn::time::Clock::rawTime
+
+
+
+
+
+
+
+
+
+ uint64_t
+ uint64_t kn::time::Clock::frameTime
+
+ frameTime
+ kn::time::Clock::frameTime
+ = 0
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::time::Clock::Clock
+ ()=default
+ Clock
+ kn::time::Clock::Clock
+
+
+
+
+
+
+
+
+
+
+ kn::time::Clock::~Clock
+ ()=default
+ ~Clock
+ kn::time::Clock::~Clock
+
+
+
+
+
+
+
+
+
+ double
+ double kn::time::Clock::tick
+ (int frameRate=360)
+ tick
+ kn::time::Clock::tick
+
+ int
+ frameRate
+ 360
+
+
+Get the delta time between frames.
+
+
+
+
+frameRate
+
+
+The frame rate to calculate the delta time.
+
+
+
+The delta time between frames.
+
+
+
+
+
+
+
+
+
+A class to keep track of time.
+
+
+This class must be a singleton.
+
+
+
+
+
+ kn::time::ClockClock
+ kn::time::ClockframeTime
+ kn::time::Clocklast
+ kn::time::Clocknow
+ kn::time::ClockrawTime
+ kn::time::Clocktick
+ kn::time::Clock~Clock
+
+
+
diff --git a/docs/source/xml/combine.xslt b/docs/source/xml/combine.xslt
new file mode 100644
index 0000000..3bfa82c
--- /dev/null
+++ b/docs/source/xml/combine.xslt
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/source/xml/compound.xsd b/docs/source/xml/compound.xsd
new file mode 100644
index 0000000..e3cf2e5
--- /dev/null
+++ b/docs/source/xml/compound.xsd
@@ -0,0 +1,1635 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The mentioned file will be located in the directory as specified by XML_OUTPUT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/source/xml/dir_d44c64559bbebec7f509842c48db8b23.xml b/docs/source/xml/dir_d44c64559bbebec7f509842c48db8b23.xml
new file mode 100644
index 0000000..0edfc7b
--- /dev/null
+++ b/docs/source/xml/dir_d44c64559bbebec7f509842c48db8b23.xml
@@ -0,0 +1,26 @@
+
+
+
+ D:/Code/c++/Kraken-Engine/include
+ Constants.hpp
+ Draw.hpp
+ Font.hpp
+ Globals.hpp
+ Input.hpp
+ KrakenEngine.hpp
+ Math.hpp
+ Rect.hpp
+ RenderWindow.hpp
+ Sprite.hpp
+ Texture.hpp
+ TextureCache.hpp
+ TileMap.hpp
+ TileTypes.hpp
+ Time.hpp
+
+
+
+
+
+
+
diff --git a/docs/source/xml/doxyfile.xsd b/docs/source/xml/doxyfile.xsd
new file mode 100644
index 0000000..fbfc2c1
--- /dev/null
+++ b/docs/source/xml/doxyfile.xsd
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/source/xml/index.xml b/docs/source/xml/index.xml
new file mode 100644
index 0000000..3cdea00
--- /dev/null
+++ b/docs/source/xml/index.xml
@@ -0,0 +1,280 @@
+
+
+ kn::time::Clock
+ now
+ last
+ rawTime
+ frameTime
+ Clock
+ ~Clock
+ tick
+
+ kn::Font
+ window
+ font
+ Font
+ ~Font
+ render
+
+ kn::Object
+ name
+ type
+ Object
+ ~Object
+
+ kn::Rect
+ Rect
+ Rect
+ Rect
+ getPos
+ getSize
+ setSize
+ collidePoint
+ collideRect
+ clamp
+ setCenter
+ setLeft
+ setRight
+ setTop
+ setBottom
+ setTopLeft
+ setTopMid
+ setTopRight
+ setBottomLeft
+ setBottomMid
+ setBottomRight
+ setLeftMid
+ setRightMid
+ getCenter
+ getLeft
+ getRight
+ getTop
+ getBottom
+ getTopLeft
+ getTopMid
+ getTopRight
+ getBottomLeft
+ getBottomMid
+ getBottomRight
+ getLeftMid
+ getRightMid
+
+ kn::RenderWindow
+ renderer
+ window
+ event
+ events
+ RenderWindow
+ ~RenderWindow
+ cls
+ flip
+ blit
+ blit
+ blitEx
+ blitEx
+ getRenderer
+ getEvents
+
+ kn::Sprite
+ window
+ texture
+ onGround
+ onCeiling
+ crop
+ rect
+ position
+ direction
+ velocity
+ moveAndCollide
+ Sprite
+ ~Sprite
+ getTexture
+
+ kn::Texture
+ texture
+ rect
+ Texture
+ ~Texture
+ getSize
+ getRect
+ getSDLTexture
+ setSize
+ scaleBy
+ fitWidth
+ fitHeight
+ query
+
+ kn::TextureCache
+ window
+ textures
+ TextureCache
+ ~TextureCache
+ load
+ create
+ move
+ getCache
+ unload
+ unloadAll
+ getTexture
+
+ kn::Tile
+ texture
+ crop
+ rect
+ Tile
+ ~Tile
+
+ kn::TileMap
+ window
+ m_map
+ tileVec
+ objectVec
+ tileSetMap
+ TileMap
+ ~TileMap
+ drawTiles
+ drawObjects
+ drawAll
+ getObjects
+
+ kn::math::Vec2
+ x
+ y
+ Vec2
+ Vec2
+ Vec2
+ Vec2
+ Vec2
+ getLength
+ normalize
+ distanceTo
+ operator*
+ operator/
+ operator+
+ operator-
+ operator+=
+ operator==
+ operator!=
+ ZERO
+
+ kn
+ SCREEN_SIZE
+ GRAVITY
+
+ kn::draw
+ rect
+
+ kn::input
+ getMousePos
+ getMouseButtonPressed
+ getKeysPressed
+ getVector
+
+ kn::math
+ clampVec
+ lerpVec
+ clamp
+
+ kn::time
+
+ Constants.hpp
+ KN_KEYS
+ KN_Event
+ KNK_w
+ KNK_a
+ KNK_s
+ KNK_d
+ KNK_q
+ KNK_e
+ KNK_r
+ KNK_f
+ KNK_t
+ KNK_g
+ KNK_y
+ KNK_h
+ KNK_u
+ KNK_j
+ KNK_i
+ KNK_k
+ KNK_o
+ KNK_l
+ KNK_p
+ KNK_z
+ KNK_x
+ KNK_c
+ KNK_v
+ KNK_b
+ KNK_n
+ KNK_m
+ KNK_0
+ KNK_1
+ KNK_2
+ KNK_3
+ KNK_4
+ KNK_5
+ KNK_6
+ KNK_7
+ KNK_8
+ KNK_9
+ KNK_left
+ KNK_right
+ KNK_down
+ KNK_up
+ KNK_space
+ KNK_return
+ KNK_backspace
+ KNK_tab
+ KNK_lshift
+ KNK_rshift
+ KNK_lctrl
+ KNK_rctrl
+ KNK_lalt
+ KNK_ralt
+ KNK_esc
+ KN_KEYDOWN
+ KN_KEYUP
+ KN_QUIT
+ KN_MOUSEBUTTONDOWN
+ KN_MOUSEBUTTONUP
+ KN_MOUSEMOTION
+ KN_MOUSEWHEEL
+ KN_TEXTINPUT
+ KNK_ESCAPE
+ KNK_RETURN
+ KNK_BACKSPACE
+ KN_BUTTON_LEFT
+ KN_BUTTON_MIDDLE
+ KN_BUTTON_RIGHT
+
+ Draw.hpp
+
+ Font.hpp
+
+ Globals.hpp
+
+ Input.hpp
+
+ KrakenEngine.hpp
+ SDL_MAIN_HANDLED
+
+ Math.hpp
+
+ Rect.hpp
+
+ RenderWindow.hpp
+
+ Sprite.hpp
+
+ Texture.hpp
+
+ TextureCache.hpp
+
+ TileMap.hpp
+
+ TileTypes.hpp
+
+ Time.hpp
+
+ D:/Code/c++/Kraken-Engine/include
+
+
diff --git a/docs/source/xml/index.xsd b/docs/source/xml/index.xsd
new file mode 100644
index 0000000..6c847cc
--- /dev/null
+++ b/docs/source/xml/index.xsd
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/source/xml/namespacekn.xml b/docs/source/xml/namespacekn.xml
new file mode 100644
index 0000000..ac7b8c9
--- /dev/null
+++ b/docs/source/xml/namespacekn.xml
@@ -0,0 +1,59 @@
+
+
+
+ kn
+ kn::Font
+ kn::Object
+ kn::Rect
+ kn::RenderWindow
+ kn::Sprite
+ kn::Texture
+ kn::TextureCache
+ kn::Tile
+ kn::TileMap
+ kn::draw
+ kn::input
+ kn::math
+ kn::time
+
+
+ const [math::Vec2]
+ const math::Vec2 kn::SCREEN_SIZE
+
+ SCREEN_SIZE
+ kn::SCREEN_SIZE
+
+The global size of the screen.
+
+
+This is independent of the window size.
+
+
+
+
+
+
+
+
+ float
+ float kn::GRAVITY
+
+ GRAVITY
+ kn::GRAVITY
+
+The global gravity of the game.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/source/xml/namespacekn_1_1draw.xml b/docs/source/xml/namespacekn_1_1draw.xml
new file mode 100644
index 0000000..10310f9
--- /dev/null
+++ b/docs/source/xml/namespacekn_1_1draw.xml
@@ -0,0 +1,81 @@
+
+
+
+ kn::draw
+
+
+ void
+ void kn::draw::rect
+ (RenderWindow &window, Rect &rect, const SDL_Color color, int thickness=0)
+ rect
+ kn::draw::rect
+
+ [RenderWindow] &
+ window
+
+
+ [Rect] &
+ rect
+
+
+ const SDL_Color
+ color
+
+
+ int
+ thickness
+ 0
+
+
+Draw a rectangle.
+
+
+
+
+window
+
+
+Reference to the [RenderWindow] instance.
+
+
+
+
+rect
+
+
+The rectangle to draw.
+
+
+
+
+color
+
+
+The color of the rectangle.
+
+
+
+
+thickness
+
+
+The thickness of the rectangle.
+
+
+
+If thickness remains 0, the rectangle will be filled.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/source/xml/namespacekn_1_1input.xml b/docs/source/xml/namespacekn_1_1input.xml
new file mode 100644
index 0000000..3f08f3e
--- /dev/null
+++ b/docs/source/xml/namespacekn_1_1input.xml
@@ -0,0 +1,145 @@
+
+
+
+ kn::input
+
+
+ [math::Vec2]
+ math::Vec2 kn::input::getMousePos
+ (int scale=1)
+ getMousePos
+ kn::input::getMousePos
+
+ int
+ scale
+ 1
+
+
+Get the mouse position.
+
+
+The mouse position.
+
+The scale parameter is temporary.
+
+
+
+
+
+
+
+
+ const int
+ const int kn::input::getMouseButtonPressed
+ ()
+ getMouseButtonPressed
+ kn::input::getMouseButtonPressed
+
+Get the mouse button pressed.
+
+
+The mouse button pressed.
+
+
+
+
+
+
+
+
+ const Uint8 *
+ const Uint8 * kn::input::getKeysPressed
+ ()
+ getKeysPressed
+ kn::input::getKeysPressed
+
+Get the keys pressed.
+
+
+The keys pressed.
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::input::getVector
+ (const std::vector< SDL_Scancode > &left={}, const std::vector< SDL_Scancode > &right={}, const std::vector< SDL_Scancode > &up={}, const std::vector< SDL_Scancode > &down={})
+ getVector
+ kn::input::getVector
+
+ const std::vector< SDL_Scancode > &
+ left
+ {}
+
+
+ const std::vector< SDL_Scancode > &
+ right
+ {}
+
+
+ const std::vector< SDL_Scancode > &
+ up
+ {}
+
+
+ const std::vector< SDL_Scancode > &
+ down
+ {}
+
+
+Get the vector of the keys pressed.
+
+
+
+
+left
+
+
+The keys to move left.
+
+
+
+
+right
+
+
+The keys to move right.
+
+
+
+
+up
+
+
+The keys to move up.
+
+
+
+
+down
+
+
+The keys to move down.
+
+
+
+The vector of the keys pressed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/source/xml/namespacekn_1_1math.xml b/docs/source/xml/namespacekn_1_1math.xml
new file mode 100644
index 0000000..aeb7311
--- /dev/null
+++ b/docs/source/xml/namespacekn_1_1math.xml
@@ -0,0 +1,184 @@
+
+
+
+ kn::math
+ kn::math::Vec2
+
+
+ [Vec2]
+ Vec2 kn::math::clampVec
+ (Vec2 vec, const Vec2 &min, const Vec2 &max)
+ clampVec
+ kn::math::clampVec
+
+ [Vec2]
+ vec
+
+
+ const [Vec2] &
+ min
+
+
+ const [Vec2] &
+ max
+
+
+Clamp a vector.
+
+
+
+
+vec
+
+
+The vector to clamp.
+
+
+
+
+min
+
+
+The minimum value.
+
+
+
+
+max
+
+
+The maximum value.
+
+
+
+The clamped vector.
+
+
+
+
+
+
+
+
+ [Vec2]
+ Vec2 kn::math::lerpVec
+ (const Vec2 &a, const Vec2 &b, float t)
+ lerpVec
+ kn::math::lerpVec
+
+ const [Vec2] &
+ a
+
+
+ const [Vec2] &
+ b
+
+
+ float
+ t
+
+
+Linearly interpolate a vector.
+
+
+
+
+a
+
+
+The first vector.
+
+
+
+
+b
+
+
+The second vector.
+
+
+
+
+t
+
+
+The time.
+
+
+
+The interpolated vector.
+
+
+
+
+
+
+
+
+
+
+ class digit
+
+
+ digit
+ digit kn::math::clamp
+ (digit val, digit min, digit max)
+ clamp
+ kn::math::clamp
+
+ digit
+ val
+
+
+ digit
+ min
+
+
+ digit
+ max
+
+
+Clamp a value.
+
+
+
+
+val
+
+
+The value to clamp.
+
+
+
+
+min
+
+
+The minimum value.
+
+
+
+
+max
+
+
+The maximum value.
+
+
+
+The clamped value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/source/xml/namespacekn_1_1time.xml b/docs/source/xml/namespacekn_1_1time.xml
new file mode 100644
index 0000000..ba428ff
--- /dev/null
+++ b/docs/source/xml/namespacekn_1_1time.xml
@@ -0,0 +1,12 @@
+
+
+
+ kn::time
+ kn::time::Clock
+
+
+
+
+
+
+
diff --git a/docs/source/xml/structkn_1_1_object.xml b/docs/source/xml/structkn_1_1_object.xml
new file mode 100644
index 0000000..4a6466c
--- /dev/null
+++ b/docs/source/xml/structkn_1_1_object.xml
@@ -0,0 +1,188 @@
+
+
+
+ kn::Object
+ kn::Tile
+ TileTypes.hpp
+
+
+ std::string
+ std::string kn::Object::name
+
+ name
+ kn::Object::name
+
+
+
+
+
+
+
+
+
+ std::string
+ std::string kn::Object::type
+
+ type
+ kn::Object::type
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::Object::Object
+ (std::shared_ptr< Texture > texture, Rect crop, Rect rect, std::string name, std::string type)
+ Object
+ kn::Object::Object
+
+ std::shared_ptr< [Texture] >
+ texture
+
+
+ [Rect]
+ crop
+
+
+ [Rect]
+ rect
+
+
+ std::string
+ name
+
+
+ std::string
+ type
+
+
+Create an object tile.
+
+
+
+
+texture
+
+
+A texture pointer.
+
+
+
+
+crop
+
+
+The rectangle to crop from.
+
+
+
+
+rect
+
+
+The rectangle to draw to.
+
+
+
+
+name
+
+
+The name of the object.
+
+
+
+
+type
+
+
+The type of the object.
+
+
+
+
+
+
+
+
+
+
+
+ kn::Object::~Object
+ ()=default
+ ~Object
+ kn::Object::~Object
+
+
+
+
+
+
+
+
+
+
+A tmx object tile.
+
+
+This is used for objects and can be assigned to a [Sprite] type. This is not yet complete.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ crop
+ rect
+
+
+
+
+
+ kn::Objectcrop
+ kn::Objectname
+ kn::ObjectObject
+ kn::Objectrect
+ kn::Objecttexture
+ kn::ObjectTile
+ kn::Objecttype
+ kn::Object~Object
+ kn::Object~Tile
+
+
+
diff --git a/docs/source/xml/structkn_1_1_rect.xml b/docs/source/xml/structkn_1_1_rect.xml
new file mode 100644
index 0000000..67e0fdc
--- /dev/null
+++ b/docs/source/xml/structkn_1_1_rect.xml
@@ -0,0 +1,771 @@
+
+
+
+ kn::Rect
+ SDL_FRect
+ Rect.hpp
+
+
+
+ kn::Rect::Rect
+ ()=default
+ Rect
+ kn::Rect::Rect
+
+
+
+
+
+
+
+
+
+
+ kn::Rect::Rect
+ (float x, float y, float w, float h)
+ Rect
+ kn::Rect::Rect
+
+ float
+ x
+
+
+ float
+ y
+
+
+ float
+ w
+
+
+ float
+ h
+
+
+Construct a new [Rect] object.
+
+
+
+
+x
+
+
+
+
+
+
+
+y
+
+
+
+
+
+
+
+w
+
+
+
+
+
+
+
+h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::Rect::Rect
+ (int x, int y, int w, int h)
+ Rect
+ kn::Rect::Rect
+
+ int
+ x
+
+
+ int
+ y
+
+
+ int
+ w
+
+
+ int
+ h
+
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Rect::getPos
+ ()
+ getPos
+ kn::Rect::getPos
+
+Get the position of the rectangle.
+
+
+The position of the rectangle.
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Rect::getSize
+ ()
+ getSize
+ kn::Rect::getSize
+
+Get the size of the rectangle.
+
+
+The size of the rectangle.
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setSize
+ (const math::Vec2 &size)
+ setSize
+ kn::Rect::setSize
+
+ const [math::Vec2] &
+ size
+
+
+Set the size of the rectangle.
+
+
+
+
+size
+
+
+The new size.
+
+
+
+
+
+
+
+
+
+
+ bool
+ bool kn::Rect::collidePoint
+ (const math::Vec2 &pos)
+ collidePoint
+ kn::Rect::collidePoint
+
+ const [math::Vec2] &
+ pos
+
+
+Check if the rectangle collides with a point.
+
+
+
+
+pos
+
+
+The point to check.
+
+
+
+Whether the rectangle collides with a point.
+
+
+
+
+
+
+
+
+ bool
+ bool kn::Rect::collideRect
+ (const Rect &rect)
+ collideRect
+ kn::Rect::collideRect
+
+ const [Rect] &
+ rect
+
+
+Check if the rectangle collides with another rectangle.
+
+
+
+
+rect
+
+
+The rectangle to check.
+
+
+
+Whether the rectangle collides with another rectangle.
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::clamp
+ (const math::Vec2 &min={}, const math::Vec2 &max=SCREEN_SIZE)
+ clamp
+ kn::Rect::clamp
+
+ const [math::Vec2] &
+ min
+ {}
+
+
+ const [math::Vec2] &
+ max
+ [SCREEN_SIZE]
+
+
+Clamp the rectangle.
+
+
+
+
+min
+
+
+The minimum value.
+
+
+
+
+max
+
+
+The maximum value.
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setCenter
+ (const math::Vec2 &pos)
+ setCenter
+ kn::Rect::setCenter
+
+ const [math::Vec2] &
+ pos
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setLeft
+ (float x)
+ setLeft
+ kn::Rect::setLeft
+
+ float
+ x
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setRight
+ (float x)
+ setRight
+ kn::Rect::setRight
+
+ float
+ x
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setTop
+ (float y)
+ setTop
+ kn::Rect::setTop
+
+ float
+ y
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setBottom
+ (float y)
+ setBottom
+ kn::Rect::setBottom
+
+ float
+ y
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setTopLeft
+ (const math::Vec2 &pos)
+ setTopLeft
+ kn::Rect::setTopLeft
+
+ const [math::Vec2] &
+ pos
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setTopMid
+ (const math::Vec2 &pos)
+ setTopMid
+ kn::Rect::setTopMid
+
+ const [math::Vec2] &
+ pos
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setTopRight
+ (const math::Vec2 &pos)
+ setTopRight
+ kn::Rect::setTopRight
+
+ const [math::Vec2] &
+ pos
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setBottomLeft
+ (const math::Vec2 &pos)
+ setBottomLeft
+ kn::Rect::setBottomLeft
+
+ const [math::Vec2] &
+ pos
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setBottomMid
+ (const math::Vec2 &pos)
+ setBottomMid
+ kn::Rect::setBottomMid
+
+ const [math::Vec2] &
+ pos
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setBottomRight
+ (const math::Vec2 &pos)
+ setBottomRight
+ kn::Rect::setBottomRight
+
+ const [math::Vec2] &
+ pos
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setLeftMid
+ (const math::Vec2 &pos)
+ setLeftMid
+ kn::Rect::setLeftMid
+
+ const [math::Vec2] &
+ pos
+
+
+
+
+
+
+
+
+
+
+ void
+ void kn::Rect::setRightMid
+ (const math::Vec2 &pos)
+ setRightMid
+ kn::Rect::setRightMid
+
+ const [math::Vec2] &
+ pos
+
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Rect::getCenter
+ ()
+ getCenter
+ kn::Rect::getCenter
+
+
+
+
+
+
+
+
+
+ float
+ float kn::Rect::getLeft
+ ()
+ getLeft
+ kn::Rect::getLeft
+
+
+
+
+
+
+
+
+
+ float
+ float kn::Rect::getRight
+ ()
+ getRight
+ kn::Rect::getRight
+
+
+
+
+
+
+
+
+
+ float
+ float kn::Rect::getTop
+ ()
+ getTop
+ kn::Rect::getTop
+
+
+
+
+
+
+
+
+
+ float
+ float kn::Rect::getBottom
+ ()
+ getBottom
+ kn::Rect::getBottom
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Rect::getTopLeft
+ ()
+ getTopLeft
+ kn::Rect::getTopLeft
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Rect::getTopMid
+ ()
+ getTopMid
+ kn::Rect::getTopMid
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Rect::getTopRight
+ ()
+ getTopRight
+ kn::Rect::getTopRight
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Rect::getBottomLeft
+ ()
+ getBottomLeft
+ kn::Rect::getBottomLeft
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Rect::getBottomMid
+ ()
+ getBottomMid
+ kn::Rect::getBottomMid
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Rect::getBottomRight
+ ()
+ getBottomRight
+ kn::Rect::getBottomRight
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Rect::getLeftMid
+ ()
+ getLeftMid
+ kn::Rect::getLeftMid
+
+
+
+
+
+
+
+
+
+ [math::Vec2]
+ math::Vec2 kn::Rect::getRightMid
+ ()
+ getRightMid
+ kn::Rect::getRightMid
+
+
+
+
+
+
+
+
+
+
+A class to represent a rectangle.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::Rectclamp
+ kn::RectcollidePoint
+ kn::RectcollideRect
+ kn::RectgetBottom
+ kn::RectgetBottomLeft
+ kn::RectgetBottomMid
+ kn::RectgetBottomRight
+ kn::RectgetCenter
+ kn::RectgetLeft
+ kn::RectgetLeftMid
+ kn::RectgetPos
+ kn::RectgetRight
+ kn::RectgetRightMid
+ kn::RectgetSize
+ kn::RectgetTop
+ kn::RectgetTopLeft
+ kn::RectgetTopMid
+ kn::RectgetTopRight
+ kn::RectRect
+ kn::RectRect
+ kn::RectRect
+ kn::RectsetBottom
+ kn::RectsetBottomLeft
+ kn::RectsetBottomMid
+ kn::RectsetBottomRight
+ kn::RectsetCenter
+ kn::RectsetLeft
+ kn::RectsetLeftMid
+ kn::RectsetRight
+ kn::RectsetRightMid
+ kn::RectsetSize
+ kn::RectsetTop
+ kn::RectsetTopLeft
+ kn::RectsetTopMid
+ kn::RectsetTopRight
+
+
+
diff --git a/docs/source/xml/structkn_1_1_tile.xml b/docs/source/xml/structkn_1_1_tile.xml
new file mode 100644
index 0000000..cd3a7f8
--- /dev/null
+++ b/docs/source/xml/structkn_1_1_tile.xml
@@ -0,0 +1,165 @@
+
+
+
+ kn::Tile
+ kn::Object
+ TileTypes.hpp
+
+
+ std::shared_ptr< [Texture] >
+ std::shared_ptr<Texture> kn::Tile::texture
+
+ texture
+ kn::Tile::texture
+
+
+
+
+
+
+
+
+
+ [Rect]
+ Rect kn::Tile::crop
+
+ crop
+ kn::Tile::crop
+
+
+
+
+
+
+
+
+
+ [Rect]
+ Rect kn::Tile::rect
+
+ rect
+ kn::Tile::rect
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::Tile::Tile
+ (std::shared_ptr< Texture > texture, Rect crop, Rect rect)
+ Tile
+ kn::Tile::Tile
+
+ std::shared_ptr< [Texture] >
+ texture
+
+
+ [Rect]
+ crop
+
+
+ [Rect]
+ rect
+
+
+Create a tile.
+
+
+
+
+texture
+
+
+A texture pointer.
+
+
+
+
+crop
+
+
+The rectangle to crop from.
+
+
+
+
+rect
+
+
+The rectangle to draw to.
+
+
+
+
+
+
+
+
+
+
+
+ kn::Tile::~Tile
+ ()=default
+ ~Tile
+ kn::Tile::~Tile
+
+
+
+
+
+
+
+
+
+
+A tmx layer tile.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ crop
+ rect
+
+
+
+
+
+ kn::Tilecrop
+ kn::Tilerect
+ kn::Tiletexture
+ kn::TileTile
+ kn::Tile~Tile
+
+
+
diff --git a/docs/source/xml/structkn_1_1math_1_1_vec2.xml b/docs/source/xml/structkn_1_1math_1_1_vec2.xml
new file mode 100644
index 0000000..a975b5f
--- /dev/null
+++ b/docs/source/xml/structkn_1_1math_1_1_vec2.xml
@@ -0,0 +1,379 @@
+
+
+
+ kn::math::Vec2
+ Math.hpp
+
+
+ float
+ float kn::math::Vec2::x
+
+ x
+ kn::math::Vec2::x
+ = 0.0f
+
+
+
+
+
+
+
+
+
+ float
+ float kn::math::Vec2::y
+
+ y
+ kn::math::Vec2::y
+ = 0.0f
+
+
+
+
+
+
+
+
+
+
+
+
+ kn::math::Vec2::Vec2
+ ()=default
+ Vec2
+ kn::math::Vec2::Vec2
+
+
+
+
+
+
+
+
+
+
+ kn::math::Vec2::Vec2
+ (float x, float y)
+ Vec2
+ kn::math::Vec2::Vec2
+
+ float
+ x
+
+
+ float
+ y
+
+
+
+
+
+
+
+
+
+
+
+ kn::math::Vec2::Vec2
+ (int x, int y)
+ Vec2
+ kn::math::Vec2::Vec2
+
+ int
+ x
+
+
+ int
+ y
+
+
+
+
+
+
+
+
+
+
+
+ kn::math::Vec2::Vec2
+ (float x, int y)
+ Vec2
+ kn::math::Vec2::Vec2
+
+ float
+ x
+
+
+ int
+ y
+
+
+
+
+
+
+
+
+
+
+
+ kn::math::Vec2::Vec2
+ (int x, float y)
+ Vec2
+ kn::math::Vec2::Vec2
+
+ int
+ x
+
+
+ float
+ y
+
+
+
+
+
+
+
+
+
+
+ float
+ float kn::math::Vec2::getLength
+ () const
+ getLength
+ kn::math::Vec2::getLength
+
+Get the length of the vector.
+
+
+The length of the vector.
+
+
+
+
+
+
+
+
+ void
+ void kn::math::Vec2::normalize
+ ()
+ normalize
+ kn::math::Vec2::normalize
+
+Normalize the vector.
+
+
+
+
+
+
+
+
+ float
+ float kn::math::Vec2::distanceTo
+ (const Vec2 &other) const
+ distanceTo
+ kn::math::Vec2::distanceTo
+
+ const [Vec2] &
+ other
+
+
+Get the distance to another vector.
+
+
+
+
+other
+
+
+The other vector.
+
+
+
+The distance to another vector.
+
+
+
+
+
+
+
+
+ [Vec2]
+ Vec2 kn::math::Vec2::operator*
+ (float scalar) const
+ operator*
+ kn::math::Vec2::operator*
+
+ float
+ scalar
+
+
+
+
+
+
+
+
+
+
+ [Vec2]
+ Vec2 kn::math::Vec2::operator/
+ (float scalar) const
+ operator/
+ kn::math::Vec2::operator/
+
+ float
+ scalar
+
+
+
+
+
+
+
+
+
+
+ [Vec2]
+ Vec2 kn::math::Vec2::operator+
+ (const Vec2 &other) const
+ operator+
+ kn::math::Vec2::operator+
+
+ const [Vec2] &
+ other
+
+
+
+
+
+
+
+
+
+
+ [Vec2]
+ Vec2 kn::math::Vec2::operator-
+ (const Vec2 &other) const
+ operator-
+ kn::math::Vec2::operator-
+
+ const [Vec2] &
+ other
+
+
+
+
+
+
+
+
+
+
+ [Vec2]
+ Vec2 kn::math::Vec2::operator+=
+ (const Vec2 &other)
+ operator+=
+ kn::math::Vec2::operator+=
+
+ const [Vec2] &
+ other
+
+
+
+
+
+
+
+
+
+
+ bool
+ bool kn::math::Vec2::operator==
+ (const Vec2 &other) const
+ operator==
+ kn::math::Vec2::operator==
+
+ const [Vec2] &
+ other
+
+
+
+
+
+
+
+
+
+
+ bool
+ bool kn::math::Vec2::operator!=
+ (const Vec2 &other) const
+ operator!=
+ kn::math::Vec2::operator!=
+
+ const [Vec2] &
+ other
+
+
+
+
+
+
+
+
+
+
+
+
+ [Vec2]
+ static Vec2 kn::math::Vec2::ZERO
+ ()
+ ZERO
+ kn::math::Vec2::ZERO
+
+Get a zero vector.
+
+
+A zero vector.
+
+
+
+
+
+
+
+
+
+A struct to represent a 2D vector.
+
+
+
+
+
+ kn::math::Vec2distanceTo
+ kn::math::Vec2getLength
+ kn::math::Vec2normalize
+ kn::math::Vec2operator!=
+ kn::math::Vec2operator*
+ kn::math::Vec2operator+
+ kn::math::Vec2operator+=
+ kn::math::Vec2operator-
+ kn::math::Vec2operator/
+ kn::math::Vec2operator==
+ kn::math::Vec2Vec2
+ kn::math::Vec2Vec2
+ kn::math::Vec2Vec2
+ kn::math::Vec2Vec2
+ kn::math::Vec2Vec2
+ kn::math::Vec2x
+ kn::math::Vec2y
+ kn::math::Vec2ZERO
+
+
+
diff --git a/docs/source/xml/xml.xsd b/docs/source/xml/xml.xsd
new file mode 100644
index 0000000..9f80fe1
--- /dev/null
+++ b/docs/source/xml/xml.xsd
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/include/Globals.hpp b/include/Globals.hpp
index cf02c1e..7ec0c6f 100644
--- a/include/Globals.hpp
+++ b/include/Globals.hpp
@@ -5,7 +5,8 @@
namespace kn {
-/// @brief The global size of the window.
+/// @brief The global size of the screen.
+/// @warning This is independent of the window size.
extern const math::Vec2 SCREEN_SIZE;
/// @brief The global gravity of the game.
diff --git a/include/KrakenEngine.hpp b/include/KrakenEngine.hpp
index d1dbc81..554bb3a 100644
--- a/include/KrakenEngine.hpp
+++ b/include/KrakenEngine.hpp
@@ -1,7 +1,6 @@
#pragma once
#define SDL_MAIN_HANDLED
-#include "Clock.hpp"
#include "Constants.hpp"
#include "Draw.hpp"
#include "Font.hpp"
@@ -15,3 +14,4 @@
#include "TextureCache.hpp"
#include "TileMap.hpp"
#include "TileTypes.hpp"
+#include "Time.hpp"
diff --git a/include/Rect.hpp b/include/Rect.hpp
index 35b515c..3eccbd3 100644
--- a/include/Rect.hpp
+++ b/include/Rect.hpp
@@ -12,6 +12,11 @@ namespace kn {
struct Rect : public SDL_FRect {
Rect() = default;
+ /// @brief Construct a new Rect object.
+ /// @param x
+ /// @param y
+ /// @param w
+ /// @param h
Rect(float x, float y, float w, float h) : SDL_FRect{ x, y, w, h } {}
Rect(int x, int y, int w, int h) : SDL_FRect{ (float)x, (float)y, (float)w, (float)h } {}
diff --git a/include/RenderWindow.hpp b/include/RenderWindow.hpp
index 9735a04..bfae8cf 100644
--- a/include/RenderWindow.hpp
+++ b/include/RenderWindow.hpp
@@ -17,13 +17,14 @@
namespace kn {
/// @brief The renderer context.
-/// @note This class is a mandatory singleton.
+/// @warning This class must be a singleton.
class RenderWindow final {
public:
/// @brief Create a window.
- /// @param size The size of the window.
/// @param title The title of the window.
- RenderWindow(const std::string &title, int scale = 1, bool fullscreen = false);
+ /// @param scale The scale of the window.
+ /// @param fullscreen Whether to make the window fullscreen.
+ RenderWindow(const std::string &title = "Kraken", int scale = 1, bool fullscreen = false);
~RenderWindow();
/// @brief Clear the screen.
@@ -33,18 +34,18 @@ class RenderWindow final {
/// @brief Flip the render frame buffer.
void flip();
- /// @brief Draw a texture.
+ /// @brief Draw a texture using rects.
/// @param texture The texture to draw.
/// @param crop The rectangle to draw from.
/// @param rect The rectangle to draw to.
void blit(const std::shared_ptr& texture, Rect crop, Rect rect);
- /// @brief Draw a texture.
+ /// @brief Draw a texture to a position.
/// @param texture The texture to draw.
/// @param position The position to draw at.
void blit(const std::shared_ptr& texture, const math::Vec2& position);
- /// @brief Draw a texture.
+ /// @brief Draw a texture using rects.
/// @param texture The texture to draw.
/// @param crop The rectangle to draw from.
/// @param rect The rectangle to draw to.
@@ -53,7 +54,7 @@ class RenderWindow final {
/// @param flipY Whether to flip the texture on the y-axis.
void blitEx(const std::shared_ptr& texture, Rect crop, Rect rect, double angle = 0.0, bool flipX = false, bool flipY = false);
- /// @brief Draw a texture.
+ /// @brief Draw a texture to a position.
/// @param texture The texture to draw.
/// @param position The position to draw at.
/// @param angle The angle to draw the texture.
diff --git a/include/Sprite.hpp b/include/Sprite.hpp
index 9d8faf9..96c3c18 100644
--- a/include/Sprite.hpp
+++ b/include/Sprite.hpp
@@ -14,6 +14,7 @@
namespace kn {
/// @brief A container for a sprite.
+/// @note This class is intended to be inherited from.
class Sprite {
protected:
RenderWindow& window;
@@ -25,7 +26,6 @@ class Sprite {
/// @brief Move the sprite while checking for collisions.
/// @param deltaTime The time since the last frame.
/// @param others The other sprites to check for collisions with.
- /// @note This function is not thread-safe.
template
void moveAndCollide(double deltaTime, const std::vector>& others) {
onGround = false;
diff --git a/include/Texture.hpp b/include/Texture.hpp
index e30540f..77a7d8d 100644
--- a/include/Texture.hpp
+++ b/include/Texture.hpp
@@ -14,10 +14,11 @@ class Texture final {
/// @brief Create a texture.
/// @param texture The SDL texture.
/// @note This function is not meant to be used by the user.
+ /// @see TextureCache::load()
+ /// @see TextureCache::create()
+ /// @see TextureCache::move()
explicit Texture(SDL_Texture* texture);
- /// @brief Destroy a texture.
- /// @note This function is not meant to be used by the user.
~Texture() { if (texture) SDL_DestroyTexture(texture); }
/// @brief Get the size of the texture.
diff --git a/include/TextureCache.hpp b/include/TextureCache.hpp
index 8ddb80d..f20bf5c 100644
--- a/include/TextureCache.hpp
+++ b/include/TextureCache.hpp
@@ -11,7 +11,7 @@
namespace kn {
/// @brief A class to cache textures.
-/// @note This class is a mandatory singleton.
+/// @warning This class must be a singleton.
class TextureCache final {
public:
/// @brief Instantiate the texture cache.
diff --git a/include/TileMap.hpp b/include/TileMap.hpp
index 81577db..b7419bd 100644
--- a/include/TileMap.hpp
+++ b/include/TileMap.hpp
@@ -16,7 +16,6 @@ namespace kn {
/// @brief A class that represents a tile map.
/// @details This class reads from TMX files generated by the Tiled map editor.
-/// @note This class is not ready for use yet.
class TileMap final {
public:
/// @brief Constructs a tile map from a TMX file.
@@ -37,7 +36,6 @@ class TileMap final {
/// @brief Get the tile map objects vector.
/// @return The tile map objects vector.
- /// @note Good for collision handling.
const std::vector