From 49f42e98f4dc5892daad76715be8d0ffd4a92987 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 14 Oct 2020 13:20:55 +0200 Subject: [PATCH] Adding Event example --- examples/build.lua | 3 ++- examples/events/EventsExample.cpp | 28 ++++++++++++++++++++++++++++ examples/events/EventsExample.h | 22 ++++++++++++++++++++++ examples/events/bam.lua | 7 +++++++ examples/events/main.cpp | 11 +++++++++++ 5 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 examples/events/EventsExample.cpp create mode 100644 examples/events/EventsExample.h create mode 100644 examples/events/bam.lua create mode 100644 examples/events/main.cpp diff --git a/examples/build.lua b/examples/build.lua index dd839cb..5505fed 100644 --- a/examples/build.lua +++ b/examples/build.lua @@ -23,7 +23,8 @@ end assets = CopyDir(PathJoin(paths.build, paths.examples), "assets") examples = BuildExamples(example_settings, { - "text" + "text", + "events" }, assets) PseudoTarget("examples", examples) diff --git a/examples/events/EventsExample.cpp b/examples/events/EventsExample.cpp new file mode 100644 index 0000000..d9859aa --- /dev/null +++ b/examples/events/EventsExample.cpp @@ -0,0 +1,28 @@ + +#include +#include +#include "EventsExample.h" + +void EventsExample::init() +{ + getMessageHandler()->registerListener(this); +} + +void EventsExample::onEvent(const sp::Event& event) +{ + if (event.type == sp::Event::Key) { + const char* name = event.key.getKeyName().c_str(); + const char* pressed = event.key.pressed ? "pressed" : "released"; + sp::Log::info("Key: %s %s", name, pressed); + } +} + +void EventsExample::update(double dt) +{ + // Nothing to do +} + +void EventsExample::render() +{ + // Nothing to do +} diff --git a/examples/events/EventsExample.h b/examples/events/EventsExample.h new file mode 100644 index 0000000..ed9f8b2 --- /dev/null +++ b/examples/events/EventsExample.h @@ -0,0 +1,22 @@ + +#ifndef EVENTS_EXAMPLE_H +#define EVENTS_EXAMPLE_H + +#include +#include + +class EventsExample : public sp::Game, sp::EventListener +{ +public : + void onEvent(const sp::Event& event); + +protected : + + void init(); + + void update(double dt); + + void render(); +}; + +#endif /* EVENTS_EXAMPLE_H */ diff --git a/examples/events/bam.lua b/examples/events/bam.lua new file mode 100644 index 0000000..fa428ca --- /dev/null +++ b/examples/events/bam.lua @@ -0,0 +1,7 @@ + +local base = PathDir(ModuleFilename()) + +src ={ + base .. "/main.cpp", + base .. "/EventsExample.cpp" +} diff --git a/examples/events/main.cpp b/examples/events/main.cpp new file mode 100644 index 0000000..9dead5e --- /dev/null +++ b/examples/events/main.cpp @@ -0,0 +1,11 @@ + +#include "EventsExample.h" + +int main(int argc, char **argv) { + + EventsExample game; + + game.run(); + + return 0; +}