attempt at tracker style music
main.cpp@11:a573cacdc078, 2018-04-18 (annotated)
- Committer:
- spinal
- Date:
- Wed Apr 18 10:41:10 2018 +0000
- Revision:
- 11:a573cacdc078
- Parent:
- 5:c4a0391b43ac
- Child:
- 12:37d999e445ad
quick button test code
Who changed what in which revision?
User | Revision | Line number | New 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 | } |