diff options
author | WBoerenkamps <wrj.boerenkamps@student.avans.nl> | 2024-12-03 17:52:24 +0100 |
---|---|---|
committer | WBoerenkamps <wrj.boerenkamps@student.avans.nl> | 2024-12-03 17:52:24 +0100 |
commit | 0da996d1c206947fdc54e324e46025efcf15fe64 (patch) | |
tree | a7d4cb40bc77773d60b129c8343c35db787870c1 /src/example | |
parent | db181bafbe57e8df5f1df5c0871865701ac62ecc (diff) |
button example
Diffstat (limited to 'src/example')
-rw-r--r-- | src/example/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/example/button.cpp | 50 |
2 files changed, 51 insertions, 1 deletions
diff --git a/src/example/CMakeLists.txt b/src/example/CMakeLists.txt index 85ec466..93b9ee2 100644 --- a/src/example/CMakeLists.txt +++ b/src/example/CMakeLists.txt @@ -19,4 +19,4 @@ endfunction() add_example(asset_manager) add_example(savemgr) add_example(rendering_particle) - +add_example(button) diff --git a/src/example/button.cpp b/src/example/button.cpp new file mode 100644 index 0000000..d74f781 --- /dev/null +++ b/src/example/button.cpp @@ -0,0 +1,50 @@ +#include <crepe/api/Camera.h> +#include <crepe/ComponentManager.h> +#include <crepe/Component.h> +#include <crepe/api/Color.h> +#include <crepe/api/GameObject.h> +#include <crepe/api/Sprite.h> +#include <crepe/api/Transform.h> +#include <crepe/system/RenderSystem.h> +#include <crepe/api/EventManager.h> +#include <crepe/system/InputSystem.h> +#include <crepe/system/AnimatorSystem.h> +#include <crepe/api/Button.h> +#include <crepe/api/Animator.h> +#include <crepe/api/Texture.h> +#include <SDL2/SDL_timer.h> +#include <crepe/types.h> +#include <chrono> +#include <iostream> +using namespace crepe; +using namespace std; + +int main(int argc, char * argv[]) { + ComponentManager mgr; + RenderSystem sys{mgr}; + EventManager& event_mgr = EventManager::get_instance(); + InputSystem input_sys{mgr}; + AnimatorSystem asys{mgr}; + GameObject camera_obj = mgr.new_object("", "", vec2{0, 0}, 0, 1); + camera_obj.add_component<Camera>(Color::WHITE, ivec2{1080, 720}, vec2{2000, 2000}, 1.0f); + + GameObject button_obj = mgr.new_object("body", "person", vec2{0, 0}, 0, 1); + auto s2 = Texture("asset/texture/test_ap43.png"); + bool button_clicked = false; + auto & sprite2 = button_obj.add_component<Sprite>( + s2, Color::GREEN, Sprite::FlipSettings{false, false}, 2, 1, 100); + std::function<void()> on_click = [&]() { + std::cout << "button clicked" << std::endl; + }; + auto & button = button_obj.add_component<Button>(100, 100, on_click, false); + button.active = true; + auto start = std::chrono::steady_clock::now(); + while (true) { + input_sys.update(); + sys.update(); + asys.update(); + event_mgr.dispatch_events(); + SDL_Delay(30); + } + return 0; +} |