[Updated] Codebase to deal with wasm-style keyboard and mouse inputs

This commit is contained in:
Ninjaws
2024-12-10 14:41:59 +01:00
parent cbf6e658ea
commit 97d93ab113
33 changed files with 344 additions and 124 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
#include "GameScreen.h"
#include "Map.h"
#include "StateService.h"
#include "screens/GameScreen.h"
#include "entities/Map.h"
#include "services/StateService.h"
GameScreen::GameScreen()
{
+9 -6
View File
@@ -1,7 +1,8 @@
#include "MainScreen.h"
#include "AudioService.h"
#include "StateService.h"
#include "screens/MainScreen.h"
#include "services/AudioService.h"
#include "services/StateService.h"
#include "raylib.h"
#include "services/InputService.h"
MainScreen::MainScreen()
{
@@ -33,6 +34,8 @@ MainScreen::MainScreen()
AudioService::getInstance().setMusic(EMusic::MAIN);
AudioService::getInstance().playMusic();
}
InputService::getInstance().setKeysToWatch({KEY_ENTER, KEY_UP, KEY_DOWN}, {MOUSE_BUTTON_LEFT});
}
void MainScreen::logic()
@@ -78,18 +81,18 @@ void MainScreen::mouseLogic()
void MainScreen::keyboardLogic()
{
if (IsKeyPressed(KEY_DOWN) || IsKeyPressed(KEY_UP))
if (InputService::getInstance().isKeyPressed(KEY_DOWN) || InputService::getInstance().isKeyPressed(KEY_UP))
{
buttons[hoveredButton].setColor(WHITE);
/** Move up or down depending on the pressed button. +4 is used so that -1 becomes 3 (the last button) */
hoveredButton = ((hoveredButton - (IsKeyPressed(KEY_DOWN) ? -1 : 1)) + 4) % 4;
hoveredButton = ((hoveredButton - (InputService::getInstance().isKeyPressed(KEY_DOWN) ? -1 : 1)) + 4) % 4;
buttons[hoveredButton].setColor(RED);
}
}
void MainScreen::clickLogic()
{
if (IsKeyPressed(KEY_ENTER) || IsMouseButtonPressed(MOUSE_BUTTON_LEFT))
if (InputService::getInstance().isKeyPressed(KEY_ENTER) || InputService::getInstance().isMouseButtonPressed(MOUSE_BUTTON_LEFT))
{
std::string selectedButton = buttons[hoveredButton].getText();
+1 -4
View File
@@ -1,7 +1,4 @@
#include "Screen.h"
#include "AudioService.h"
#include <optional>
#include "screens/Screen.h"
// void Screen::draw()
// {
+10 -7
View File
@@ -1,9 +1,10 @@
#include "TitleScreen.h"
#include "AssetService.h"
#include "StateService.h"
#include "EFont.h"
#include "AudioService.h"
#include "screens/TitleScreen.h"
#include "services/AssetService.h"
#include "services/StateService.h"
#include "enums/EFont.h"
#include "services/AudioService.h"
#include <iostream>
#include "services/InputService.h"
TitleScreen::TitleScreen()
{
@@ -27,14 +28,16 @@ TitleScreen::TitleScreen()
AudioService::getInstance().setMusic(EMusic::MAIN);
AudioService::getInstance().playMusic();
}
InputService::getInstance().setKeysToWatch({KEY_ENTER}, {MOUSE_BUTTON_LEFT});
}
void TitleScreen::logic()
{
if (IsKeyPressed(KEY_ENTER) || IsMouseButtonPressed(MOUSE_BUTTON_LEFT))
// std::cout << "Next screen!" << std::endl;
if (InputService::getInstance().isKeyPressed(KEY_ENTER) || InputService::getInstance().isMouseButtonPressed(MOUSE_BUTTON_LEFT))
{
StateService::getInstance().setScreen(EScreen::MAIN);
// std::cout << "Next screen!" << std::endl;
}
}
+8 -5
View File
@@ -1,8 +1,9 @@
#include "TutorialScreen.h"
#include "screens/TutorialScreen.h"
#include "StateService.h"
#include "EFont.h"
#include "EScreen.h"
#include "services/StateService.h"
#include "enums/EFont.h"
#include "enums/EScreen.h"
#include "services/InputService.h"
TutorialScreen::TutorialScreen() {
Text textBack = Text("Press Enter to go back", EFont::SANSATION, 30, 0, RED);
@@ -11,11 +12,13 @@ TutorialScreen::TutorialScreen() {
this->text.push_back(textBack);
this->background = Background(EBackground::TUTORIAL);
InputService::getInstance().setKeysToWatch({KEY_ENTER}, {MOUSE_BUTTON_LEFT});
}
void TutorialScreen::logic()
{
if (IsKeyPressed(KEY_ENTER) || IsMouseButtonPressed(MOUSE_BUTTON_LEFT))
if ( InputService::getInstance().isKeyPressed(KEY_ENTER) || InputService::getInstance().isMouseButtonPressed(MOUSE_BUTTON_LEFT))
{
StateService::getInstance().setScreen(EScreen::MAIN);
}