aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/Camera.h
diff options
context:
space:
mode:
authorJAROWMR <jarorutjes07@gmail.com>2024-11-10 19:19:25 +0100
committerJAROWMR <jarorutjes07@gmail.com>2024-11-10 19:19:25 +0100
commitbb0dba6b2a84a8bcbb1e07a14f015f73408d460c (patch)
tree0d669bc5e88544749964d4639d27575545fbabe1 /src/crepe/api/Camera.h
parent46716724df7697fa789329a62f7a5444ceed5585 (diff)
parent3a690f7d0c91b92b9cdfe62f44dba8db90142abc (diff)
Merge branch 'master' of github.com:lonkaars/crepe into jaro/particle-system-master
Diffstat (limited to 'src/crepe/api/Camera.h')
-rw-r--r--src/crepe/api/Camera.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/crepe/api/Camera.h b/src/crepe/api/Camera.h
new file mode 100644
index 0000000..ba3a9ef
--- /dev/null
+++ b/src/crepe/api/Camera.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <cstdint>
+
+#include "Color.h"
+#include "Component.h"
+
+namespace crepe {
+
+/**
+ * \class Camera
+ * \brief Represents a camera component for rendering in the game.
+ *
+ * The Camera class defines the view parameters, including background color,
+ * aspect ratio, position, and zoom level. It controls what part of the game
+ * world is visible on the screen.
+ */
+class Camera : public Component {
+
+public:
+ /**
+ * \brief Constructs a Camera with the specified ID and background color.
+ * \param id Unique identifier for the camera component.
+ * \param bg_color Background color for the camera view.
+ */
+ Camera(uint32_t id, const Color & bg_color);
+ ~Camera(); // dbg_trace only
+
+public:
+ //! Background color of the camera view.
+ Color bg_color;
+
+ //! Aspect ratio height for the camera.
+ double aspect_height = 480;
+
+ //! Aspect ratio width for the camera.
+ double aspect_width = 640;
+
+ //! X-coordinate of the camera position.
+ double x = 0.0;
+
+ //! Y-coordinate of the camera position.
+ double y = 0.0;
+
+ //! Zoom level of the camera view.
+ double zoom = 1.0;
+
+public:
+ /**
+ * \brief Gets the maximum number of camera instances allowed.
+ * \return Maximum instance count as an integer.
+ */
+ virtual int get_instances_max() const { return 10; }
+};
+} // namespace crepe