Read analoge stick positions

This commit is contained in:
2024-01-04 21:36:40 -06:00
parent 2d66e4fe96
commit b2e25c6dc3
4 changed files with 59 additions and 5 deletions

View File

@@ -2,7 +2,7 @@
#include <PSX/GPU/gpu.hpp>
namespace ControllerTest {
using DigitalButton = Periphery::GenericController::Button;
using DigitalButton = Periphery::AnalogeController::Button;
using namespace JabyEngine;
// This should go to JabyEngine eventually
@@ -41,10 +41,11 @@ namespace ControllerTest {
}
}
void ControllerState :: update(const Periphery::GenericController& controller) {
void ControllerState :: update(const Periphery::AnalogeController& controller, JabyEngine::FontWriter& font_writer) {
static const DigitalButton ButtonSprtMap[] = {
DigitalButton::Triangle, DigitalButton::Circle, DigitalButton::Cross, DigitalButton::Square,
DigitalButton::ST, DigitalButton::SEL, DigitalButton::L1, DigitalButton::L2, DigitalButton::R1, DigitalButton::R2
DigitalButton::ST, DigitalButton::SEL, DigitalButton::L1, DigitalButton::L2, DigitalButton::R1, DigitalButton::R2,
DigitalButton::L3, DigitalButton::R3
};
static const DigitalButton ArrowPolyMap[] = {
DigitalButton::Up, DigitalButton::Right, DigitalButton::Down, DigitalButton::Left
@@ -61,6 +62,13 @@ namespace ControllerTest {
}
set_active(cur_button_sprts[12], controller.header.state == Periphery::RawController::State::Disconnected);
// Text stuff down here
const auto left_stick = controller.get_left_stick_pos();
const auto right_stick = controller.get_right_stick_pos();
auto cursor = State::create(Make::PositionI16(98, 0), 0);
font_writer.write(cursor, "Right: %i, %i\n Left: %i, %i", right_stick.x, right_stick.y, left_stick.x, left_stick.y);
}
void ControllerState :: render() {

View File

@@ -1,4 +1,5 @@
#include "../../../include/shared.hpp"
#include "../../include/font_writer.hpp"
#include "include/controller_state.hpp"
#include <PSX/Periphery/periphery.hpp>
#include <stdio.h>
@@ -19,12 +20,13 @@ namespace ControllerTest {
return true;
}
controller_state.update(Periphery::get_primary_controller_as<JabyEngine::Periphery::GenericController>());
controller_state.update(Periphery::get_primary_controller_as<JabyEngine::Periphery::AnalogeController>(), FontWriter::new_font_writer);
return false;
}
static void render() {
controller_state.render();
FontWriter::new_font_writer.render();
Shared::back_menu.render();
}

View File

@@ -1,5 +1,6 @@
#pragma once
#include "controller_test_assets.hpp"
#include <FontWriter/font_writer.hpp>
#include <PSX/GPU/make_gpu_primitives.hpp>
#include <PSX/Periphery/controller.hpp>
@@ -60,7 +61,7 @@ namespace ControllerTest {
}
void setup();
void update(const Periphery::GenericController& controller);
void update(const Periphery::AnalogeController& controller, JabyEngine::FontWriter& font_writer);
void render();
};
}