From 35ef3ba91ce9e00466508f2388f4c1dd2321b505 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Thu, 31 Oct 2024 18:40:45 +0100 Subject: minor script system fixes --- src/example/script.cpp | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'src/example') diff --git a/src/example/script.cpp b/src/example/script.cpp index 43f1c22..cda9591 100644 --- a/src/example/script.cpp +++ b/src/example/script.cpp @@ -17,27 +17,38 @@ using namespace crepe; using namespace crepe::api; using namespace std; +// Unrelated stuff that is not part of this POC +int _ = [] () { + // Show dbg_trace() output + auto & cfg = api::Config::get_instance(); + cfg.log.level = util::LogLevel::TRACE; + + return 0; // satisfy compiler +}(); + + + +// User-defined script: class MyScript : public Script { void update() { + // Retrieve component from the same GameObject this script is on Transform & test = get_component(); dbg_logf("Transform(%.2f, %.2f)", test.position.x, test.position.y); } }; int main() { - auto & cfg = api::Config::get_instance(); - cfg.log.level = util::LogLevel::TRACE; - + // Create game object with Transform and BehaviorScript components auto obj = GameObject(0, "name", "tag", 0); - Point point = { - .x = 1.2, - .y = 3.4, - }; - obj.add_component(point, 0, 0); + obj.add_component(Point { .x = 1.2, .y = 3.4, }, 0, 0); obj.add_component().set_script(); + // Get ScriptSystem singleton instance (this would normally be done from the + // game loop) auto & sys = ScriptSystem::get_instance(); - sys.update(); // -> MyScript::update + // Update all scripts. This should result in MyScript::update being called + sys.update(); - return 0; + return EXIT_SUCCESS; } + -- cgit v1.2.3 From 33db98002292299b127d4428dc38091628c68854 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Thu, 31 Oct 2024 18:59:36 +0100 Subject: update audio POC --- src/example/audio_internal.cpp | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'src/example') diff --git a/src/example/audio_internal.cpp b/src/example/audio_internal.cpp index 1199e2d..f35ad9d 100644 --- a/src/example/audio_internal.cpp +++ b/src/example/audio_internal.cpp @@ -5,26 +5,40 @@ #include #include +#include -#include #include using namespace crepe; +using namespace crepe::api; using namespace std; using namespace std::chrono_literals; using std::make_unique; -int main() { - dbg_trace(); +// Unrelated stuff that is not part of this POC +int _ = [] () { + // Show dbg_trace() output + auto & cfg = api::Config::get_instance(); + cfg.log.level = util::LogLevel::TRACE; + + return 0; // satisfy compiler +}(); + + +int main() { + // Load a background track (Ogg Vorbis) auto bgm = Sound("../mwe/audio/bgm.ogg"); + // Load three short samples (WAV) auto sfx1 = Sound("../mwe/audio/sfx1.wav"); auto sfx2 = Sound("../mwe/audio/sfx2.wav"); auto sfx3 = Sound("../mwe/audio/sfx3.wav"); + // Start the background track bgm.play(); - // play each sample sequentially + // Play each sample sequentially while pausing and resuming the background + // track this_thread::sleep_for(500ms); sfx1.play(); this_thread::sleep_for(500ms); @@ -35,11 +49,12 @@ int main() { bgm.play(); this_thread::sleep_for(500ms); - // play all samples simultaniously + // Play all samples simultaniously sfx1.play(); sfx2.play(); sfx3.play(); this_thread::sleep_for(1000ms); - return 0; + // Stop all audio and exit + return EXIT_SUCCESS; } -- cgit v1.2.3 From 6aa8fdd04728b6a499f526de727514ae3d0490b4 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Fri, 1 Nov 2024 14:40:20 +0100 Subject: clean up logging example --- src/example/log.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/example') diff --git a/src/example/log.cpp b/src/example/log.cpp index 3bc6d80..04ab9cd 100644 --- a/src/example/log.cpp +++ b/src/example/log.cpp @@ -9,16 +9,21 @@ using namespace crepe; using namespace crepe::util; -int main() { - auto & cfg = api::Config::get_instance(); +// unrelated setup code +int _ = [] () { // make sure all log messages get printed + auto & cfg = api::Config::get_instance(); cfg.log.level = util::LogLevel::TRACE; + return 0; // satisfy compiler +} (); + +int main() { dbg_trace(); - dbg_logf("cfg.log.color is equal to %d", cfg.log.color); - logf(LogLevel::INFO, "info message!"); - logf(LogLevel::WARNING, "very scary warning"); - logf(LogLevel::ERROR, "fatal error!!!"); + dbg_logf("test printf parameters: %d", 3); + logf(LogLevel::INFO, "info message"); + logf(LogLevel::WARNING, "warning"); + logf(LogLevel::ERROR, "error"); return 0; } -- cgit v1.2.3