aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/example/CMakeLists.txt2
-rw-r--r--src/example/GameScene.cpp50
-rw-r--r--src/example/GameScene.h11
-rw-r--r--src/example/game.cpp52
4 files changed, 65 insertions, 50 deletions
diff --git a/src/example/CMakeLists.txt b/src/example/CMakeLists.txt
index 911a99c..307c8da 100644
--- a/src/example/CMakeLists.txt
+++ b/src/example/CMakeLists.txt
@@ -4,6 +4,7 @@ set(GAME_HEADERS
Forest.h
Hallway.h
Start.h
+ GameScene.h
)
set(GAME_SOURCES
@@ -13,6 +14,7 @@ set(GAME_SOURCES
Forest.cpp
Hallway.cpp
Start.cpp
+ GameScene.cpp
)
add_executable(game ${GAME_SOURCES} ${GAME_HEADERS})
diff --git a/src/example/GameScene.cpp b/src/example/GameScene.cpp
new file mode 100644
index 0000000..8a0ec5c
--- /dev/null
+++ b/src/example/GameScene.cpp
@@ -0,0 +1,50 @@
+#include "GameScene.h"
+#include "Background.h"
+
+#include <crepe/api/BehaviorScript.h>
+#include <crepe/api/Camera.h>
+#include <crepe/api/Color.h>
+#include <crepe/api/Event.h>
+#include <crepe/api/GameObject.h>
+#include <crepe/api/Rigidbody.h>
+#include <crepe/api/Script.h>
+#include <crepe/types.h>
+
+using namespace crepe;
+using namespace std;
+
+class MoveCameraScript : public Script {
+public:
+ void init() {
+ subscribe<KeyPressEvent>(
+ [this](const KeyPressEvent & ev) -> bool { return this->keypressed(ev); });
+ }
+
+private:
+ bool keypressed(const KeyPressEvent & event) {
+ if (event.key == Keycode::RIGHT) {
+ Transform & cam = this->get_components_by_name<Transform>("camera").front();
+ cam.position.x += 100;
+ } else if (event.key == Keycode::LEFT) {
+ Transform & cam = this->get_components_by_name<Transform>("camera").front();
+ cam.position.x -= 100;
+ }
+ return true;
+ }
+};
+
+void GameScene::load_scene() {
+ Background background(*this);
+
+ GameObject camera = new_object("camera", "camera", vec2(600, 0));
+ camera.add_component<Camera>(ivec2(1700, 720), vec2(2000, 800),
+ Camera::Data{
+ .bg_color = Color::RED,
+ });
+ camera.add_component<BehaviorScript>().set_script<MoveCameraScript>();
+ camera.add_component<Rigidbody>(Rigidbody::Data{
+ .linear_velocity = vec2(100, 0),
+ });
+}
+
+string GameScene::get_name() const { return "scene1"; }
diff --git a/src/example/GameScene.h b/src/example/GameScene.h
new file mode 100644
index 0000000..16e2919
--- /dev/null
+++ b/src/example/GameScene.h
@@ -0,0 +1,11 @@
+#pragma once
+
+#include <crepe/api/Scene.h>
+#include <string>
+
+class GameScene : public crepe::Scene {
+public:
+ void load_scene();
+
+ std::string get_name() const;
+};
diff --git a/src/example/game.cpp b/src/example/game.cpp
index 8f3996b..378a64a 100644
--- a/src/example/game.cpp
+++ b/src/example/game.cpp
@@ -1,61 +1,13 @@
-#include "Background.h"
+#include "GameScene.h"
-#include <crepe/api/BehaviorScript.h>
-#include <crepe/api/Camera.h>
-#include <crepe/api/Color.h>
-#include <crepe/api/Event.h>
-#include <crepe/api/GameObject.h>
#include <crepe/api/LoopManager.h>
-#include <crepe/api/Rigidbody.h>
-#include <crepe/api/Scene.h>
-#include <crepe/api/Script.h>
-#include <crepe/types.h>
using namespace crepe;
using namespace std;
-class MoveCameraScript : public Script {
-public:
- void init() {
- subscribe<KeyPressEvent>(
- [this](const KeyPressEvent & ev) -> bool { return this->keypressed(ev); });
- }
-
-private:
- bool keypressed(const KeyPressEvent & event) {
- if (event.key == Keycode::RIGHT) {
- Transform & cam = this->get_components_by_name<Transform>("camera").front();
- cam.position.x += 100;
- } else if (event.key == Keycode::LEFT) {
- Transform & cam = this->get_components_by_name<Transform>("camera").front();
- cam.position.x -= 100;
- }
- return true;
- }
-};
-
-class Scene1 : public Scene {
-public:
- void load_scene() {
- Background background(*this);
-
- GameObject camera = new_object("camera", "camera", vec2(600, 0));
- camera.add_component<Camera>(ivec2(1700, 720), vec2(2000, 800),
- Camera::Data{
- .bg_color = Color::RED,
- });
- camera.add_component<BehaviorScript>().set_script<MoveCameraScript>();
- camera.add_component<Rigidbody>(Rigidbody::Data{
- .linear_velocity = vec2(100, 0),
- });
- }
-
- string get_name() const { return "scene1"; }
-};
-
int main(int argc, char * argv[]) {
LoopManager gameloop;
- gameloop.add_scene<Scene1>();
+ gameloop.add_scene<GameScene>();
gameloop.start();
return 0;
}