examples/input/InputExample: Adding support for Event based mouse movement.
This commit is contained in:
parent
085d593b66
commit
962c18fcac
2 changed files with 35 additions and 1 deletions
|
|
@ -2,6 +2,8 @@
|
||||||
#include <Spectre/Input/InputModule.h>
|
#include <Spectre/Input/InputModule.h>
|
||||||
#include <Spectre/Input/Keyboard.h>
|
#include <Spectre/Input/Keyboard.h>
|
||||||
#include <Spectre/Input/Mouse.h>
|
#include <Spectre/Input/Mouse.h>
|
||||||
|
#include <Spectre/System/MessageHandler.h>
|
||||||
|
#include <Spectre/System/Log.h>
|
||||||
|
|
||||||
#include <Spectre/Graphics/BatchRenderer2D.h>
|
#include <Spectre/Graphics/BatchRenderer2D.h>
|
||||||
#include <Spectre/System/Log.h>
|
#include <Spectre/System/Log.h>
|
||||||
|
|
@ -11,6 +13,8 @@ void InputExample::init()
|
||||||
{
|
{
|
||||||
m_renderer = new sp::BatchRenderer2D();
|
m_renderer = new sp::BatchRenderer2D();
|
||||||
|
|
||||||
|
getMessageHandler()->registerListener(this);
|
||||||
|
|
||||||
m_tux_texture.create("assets/textures/tux.png");
|
m_tux_texture.create("assets/textures/tux.png");
|
||||||
|
|
||||||
m_kb_sprite.setTexture(m_tux_texture);
|
m_kb_sprite.setTexture(m_tux_texture);
|
||||||
|
|
@ -22,6 +26,13 @@ void InputExample::init()
|
||||||
m_mouse_sprite.setSize(sp::vec2f(100, 100));
|
m_mouse_sprite.setSize(sp::vec2f(100, 100));
|
||||||
m_mouse_sprite.setPosition(sp::vec2f(50, 50));
|
m_mouse_sprite.setPosition(sp::vec2f(50, 50));
|
||||||
|
|
||||||
|
m_mouse_event_sprite.setTexture(m_tux_texture);
|
||||||
|
m_mouse_event_sprite.setColor(sp::Color::Blue);
|
||||||
|
m_mouse_event_sprite.setSize(sp::vec2f(100, 100));
|
||||||
|
m_mouse_event_sprite.setPosition(sp::vec2f(50, 50));
|
||||||
|
|
||||||
|
m_right_mouse_down = false;
|
||||||
|
|
||||||
m_renderer->setCamera(m_camera);
|
m_renderer->setCamera(m_camera);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -50,6 +61,20 @@ void InputExample::update(double dt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void InputExample::onSizeChanged(sp::Display* display, int width, int height)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void InputExample::onEvent(const sp::Event& event)
|
||||||
|
{
|
||||||
|
if (event.type == event.MouseButton && event.mouseButton.button == sp::Mouse::Right) {
|
||||||
|
m_right_mouse_down = event.mouseButton.pressed;
|
||||||
|
} else if (event.type == event.MouseMove && m_right_mouse_down) {
|
||||||
|
m_mouse_event_sprite.setPosition(event.mouseMove.x, event.mouseMove.y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void InputExample::render()
|
void InputExample::render()
|
||||||
{
|
{
|
||||||
sp::Graphics* g = getGraphics();
|
sp::Graphics* g = getGraphics();
|
||||||
|
|
@ -58,6 +83,7 @@ void InputExample::render()
|
||||||
|
|
||||||
m_renderer->begin();
|
m_renderer->begin();
|
||||||
m_renderer->submit(m_mouse_sprite);
|
m_renderer->submit(m_mouse_sprite);
|
||||||
|
m_renderer->submit(m_mouse_event_sprite);
|
||||||
m_renderer->submit(m_kb_sprite);
|
m_renderer->submit(m_kb_sprite);
|
||||||
m_renderer->render();
|
m_renderer->render();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,14 @@
|
||||||
#include <Spectre/Scene/Camera2D.h>
|
#include <Spectre/Scene/Camera2D.h>
|
||||||
#include <Spectre/Graphics/Texture.h>
|
#include <Spectre/Graphics/Texture.h>
|
||||||
#include <Spectre/Graphics/Sprite.h>
|
#include <Spectre/Graphics/Sprite.h>
|
||||||
|
#include <Spectre/System/EventListener.h>
|
||||||
#include <Spectre/Game.h>
|
#include <Spectre/Game.h>
|
||||||
|
|
||||||
namespace sp {
|
namespace sp {
|
||||||
class Renderer2D;
|
class Renderer2D;
|
||||||
}
|
}
|
||||||
|
|
||||||
class InputExample : public sp::Game
|
class InputExample : public sp::Game, sp::EventListener
|
||||||
{
|
{
|
||||||
protected :
|
protected :
|
||||||
|
|
||||||
|
|
@ -21,12 +22,19 @@ protected :
|
||||||
|
|
||||||
void render();
|
void render();
|
||||||
|
|
||||||
|
void onSizeChanged(sp::Display* display, int width, int height);
|
||||||
|
|
||||||
|
void onEvent(const sp::Event& event);
|
||||||
|
|
||||||
private :
|
private :
|
||||||
sp::Camera2D m_camera;
|
sp::Camera2D m_camera;
|
||||||
sp::Renderer2D *m_renderer;
|
sp::Renderer2D *m_renderer;
|
||||||
|
|
||||||
sp::Sprite m_kb_sprite;
|
sp::Sprite m_kb_sprite;
|
||||||
sp::Sprite m_mouse_sprite;
|
sp::Sprite m_mouse_sprite;
|
||||||
|
sp::Sprite m_mouse_event_sprite;
|
||||||
|
|
||||||
|
bool m_right_mouse_down;
|
||||||
|
|
||||||
sp::Texture m_tux_texture;
|
sp::Texture m_tux_texture;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue