ELEC2645 (2018/19) / Mbed 2 deprecated el17ajf

Dependencies:   mbed

Fork of el17ajf by Angus Findlay

Committer:
el17ajf
Date:
Sun Mar 17 12:14:56 2019 +0000
Revision:
12:beb0d7632531
Parent:
10:5762d7fae033
Child:
13:59e17cab320a
changed location of static values

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el17ajf 5:3efbdcb3efaf 1 #include "Input.h"
el17ajf 12:beb0d7632531 2 #include "mbed.h" // TODO DELETE
el17ajf 12:beb0d7632531 3
el17ajf 12:beb0d7632531 4 const int NUMBER_OF_BUTTONS = 4;
el17ajf 5:3efbdcb3efaf 5
el17ajf 10:5762d7fae033 6 Input::State Input::states[NUMBER_OF_BUTTONS];
el17ajf 12:beb0d7632531 7 Gamepad * Input::gamepad;
el17ajf 10:5762d7fae033 8
el17ajf 9:3a7776a29a11 9 void Input::init() {
el17ajf 12:beb0d7632531 10 gamepad = new Gamepad();
el17ajf 12:beb0d7632531 11 gamepad->init();
el17ajf 12:beb0d7632531 12 //printf("%d\n", NUMBER_OF_BUTTONS);
el17ajf 12:beb0d7632531 13 /*
el17ajf 12:beb0d7632531 14 for (int i = 0; i < 4; i++) {
el17ajf 10:5762d7fae033 15 Input::states[i] = RELEASED;
el17ajf 9:3a7776a29a11 16 }
el17ajf 12:beb0d7632531 17 */
el17ajf 9:3a7776a29a11 18 }
el17ajf 9:3a7776a29a11 19
el17ajf 9:3a7776a29a11 20 void Input::deinit() {
el17ajf 12:beb0d7632531 21 delete gamepad;
el17ajf 9:3a7776a29a11 22 }
el17ajf 9:3a7776a29a11 23
el17ajf 5:3efbdcb3efaf 24 void Input::update() {
el17ajf 9:3a7776a29a11 25 // update existing states
el17ajf 9:3a7776a29a11 26 for (int i = 0; i < NUMBER_OF_BUTTONS; i++) {
el17ajf 10:5762d7fae033 27 if (Input::states[i] == RELEASED_FRAME) {
el17ajf 10:5762d7fae033 28 Input::states[i] = RELEASED;
el17ajf 9:3a7776a29a11 29 }
el17ajf 10:5762d7fae033 30 if (Input::states[i] == HIT_FRAME) {
el17ajf 10:5762d7fae033 31 Input::states[i] = HELD;
el17ajf 9:3a7776a29a11 32 }
el17ajf 9:3a7776a29a11 33 }
el17ajf 5:3efbdcb3efaf 34
el17ajf 9:3a7776a29a11 35 // check inputs
el17ajf 12:beb0d7632531 36 if (gamepad->check_event(Gamepad::Y_PRESSED)) {
el17ajf 12:beb0d7632531 37 // states[RIGHT] = HIT_FRAME;
el17ajf 12:beb0d7632531 38 printf("RIGHT\n");
el17ajf 12:beb0d7632531 39 }
el17ajf 9:3a7776a29a11 40 }
el17ajf 9:3a7776a29a11 41
el17ajf 9:3a7776a29a11 42 bool Input::buttonHit(Button button) {
el17ajf 10:5762d7fae033 43 return Input::states[button] == HIT_FRAME;
el17ajf 9:3a7776a29a11 44 }
el17ajf 9:3a7776a29a11 45
el17ajf 9:3a7776a29a11 46 bool Input::buttonHeld(Button button) {
el17ajf 10:5762d7fae033 47 return Input::states[button] == HIT_FRAME
el17ajf 10:5762d7fae033 48 || Input::states[button] == HELD;
el17ajf 5:3efbdcb3efaf 49 }