test buttons of pokitto

Dependencies:   PokittoLib

Fork of HelloWorld by Pokitto Community Team

Committer:
spinal
Date:
Wed Apr 18 10:41:10 2018 +0000
Revision:
11:a573cacdc078
Parent:
5:c4a0391b43ac
quick button test code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Pokitto 0:2d2a3994d55d 1 #include "Pokitto.h"
Pokitto 0:2d2a3994d55d 2
Pokitto 0:2d2a3994d55d 3 Pokitto::Core mygame;
Pokitto 0:2d2a3994d55d 4
spinal 11:a573cacdc078 5 //------------------------[ Button handling, very accurate ]------------------------
spinal 11:a573cacdc078 6 #define HELD 0
spinal 11:a573cacdc078 7 #define NEW 1
spinal 11:a573cacdc078 8 #define RELEASE 2
spinal 11:a573cacdc078 9 byte CompletePad, ExPad, TempPad, myPad;
spinal 11:a573cacdc078 10 bool _A[3], _B[3], _C[3], _Up[3], _Down[3], _Left[3], _Right[3];
spinal 11:a573cacdc078 11
spinal 11:a573cacdc078 12 DigitalIn _aPin(P1_9);
spinal 11:a573cacdc078 13 DigitalIn _bPin(P1_4);
spinal 11:a573cacdc078 14 DigitalIn _cPin(P1_10);
spinal 11:a573cacdc078 15 DigitalIn _upPin(P1_13);
spinal 11:a573cacdc078 16 DigitalIn _downPin(P1_3);
spinal 11:a573cacdc078 17 DigitalIn _leftPin(P1_25);
spinal 11:a573cacdc078 18 DigitalIn _rightPin(P1_7);
spinal 11:a573cacdc078 19
spinal 11:a573cacdc078 20 void UPDATEPAD(int pad, int var) {
spinal 11:a573cacdc078 21 _C[pad] = (var >> 1)&1;
spinal 11:a573cacdc078 22 _B[pad] = (var >> 2)&1;
spinal 11:a573cacdc078 23 _A[pad] = (var >> 3)&1;
spinal 11:a573cacdc078 24 _Down[pad] = (var >> 4)&1;
spinal 11:a573cacdc078 25 _Left[pad] = (var >> 5)&1;
spinal 11:a573cacdc078 26 _Right[pad] = (var >> 6)&1;
spinal 11:a573cacdc078 27 _Up[pad] = (var >> 7)&1;
spinal 11:a573cacdc078 28 }
spinal 11:a573cacdc078 29
spinal 11:a573cacdc078 30 byte updateButtons(byte var){
spinal 11:a573cacdc078 31 var = 0;
spinal 11:a573cacdc078 32 if (_cPin) var |= (1<<1);
spinal 11:a573cacdc078 33 if (_bPin) var |= (1<<2);
spinal 11:a573cacdc078 34 if (_aPin) var |= (1<<3); // P1_9 = A
spinal 11:a573cacdc078 35 if (_downPin) var |= (1<<4);
spinal 11:a573cacdc078 36 if (_leftPin) var |= (1<<5);
spinal 11:a573cacdc078 37 if (_rightPin) var |= (1<<6);
spinal 11:a573cacdc078 38 if (_upPin) var |= (1<<7);
spinal 11:a573cacdc078 39 return var;
spinal 11:a573cacdc078 40 }
spinal 11:a573cacdc078 41
spinal 11:a573cacdc078 42
spinal 11:a573cacdc078 43 void UpdatePad(int joy_code){
spinal 11:a573cacdc078 44 ExPad = CompletePad;
spinal 11:a573cacdc078 45 CompletePad = joy_code;
spinal 11:a573cacdc078 46 UPDATEPAD(HELD, CompletePad); // held
spinal 11:a573cacdc078 47 UPDATEPAD(RELEASE, (ExPad & (~CompletePad))); // released
spinal 11:a573cacdc078 48 UPDATEPAD(NEW, (CompletePad & (~ExPad))); // newpress
spinal 11:a573cacdc078 49 }
spinal 11:a573cacdc078 50
spinal 11:a573cacdc078 51 //----------------------------------------------------------------------------------
spinal 11:a573cacdc078 52
Pokitto 0:2d2a3994d55d 53 int main () {
Pokitto 0:2d2a3994d55d 54 mygame.begin();
Pokitto 0:2d2a3994d55d 55 while (mygame.isRunning()) {
Pokitto 0:2d2a3994d55d 56 if (mygame.update()) {
spinal 11:a573cacdc078 57 // update buttons
spinal 11:a573cacdc078 58 myPad = updateButtons(myPad);
spinal 11:a573cacdc078 59 UpdatePad(myPad);
spinal 11:a573cacdc078 60
spinal 11:a573cacdc078 61 if(_Left[HELD]){
spinal 11:a573cacdc078 62 mygame.display.setColor(1);
spinal 11:a573cacdc078 63 mygame.display.fillRectangle(0, 32, 32, 32);
spinal 11:a573cacdc078 64 }
spinal 11:a573cacdc078 65 if(_Right[HELD]){
spinal 11:a573cacdc078 66 mygame.display.setColor(2);
spinal 11:a573cacdc078 67 mygame.display.fillRectangle(32, 32, 32, 32);
spinal 11:a573cacdc078 68 }
spinal 11:a573cacdc078 69 if(_Up[HELD]){
spinal 11:a573cacdc078 70 mygame.display.setColor(3);
spinal 11:a573cacdc078 71 mygame.display.fillRectangle(0, 0, 32, 32);
spinal 11:a573cacdc078 72 }
spinal 11:a573cacdc078 73 if(_Down[HELD]){
spinal 11:a573cacdc078 74 mygame.display.setColor(4);
spinal 11:a573cacdc078 75 mygame.display.fillRectangle(0, 64, 32, 32);
spinal 11:a573cacdc078 76 }
spinal 11:a573cacdc078 77 }
spinal 11:a573cacdc078 78 }
Pokitto 0:2d2a3994d55d 79 }