Auto full-combo Koibumi2000 in Taiko no Tatsujin CS5
Dependencies: fll mbed-rtos mbed
taiko.cpp@15:ed0c2da735c2, 2015-02-16 (annotated)
- Committer:
- amutake
- Date:
- Mon Feb 16 07:13:09 2015 +0000
- Revision:
- 15:ed0c2da735c2
- Parent:
- 14:83af8f502d83
- Child:
- 16:253d933a7633
Koibumi2000 (not tested)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
amutake | 10:79bb44beb08b | 1 | // Toolkit for Taiko no Tatsujin |
amutake | 10:79bb44beb08b | 2 | |
amutake | 10:79bb44beb08b | 3 | #include "fll.h" |
amutake | 10:79bb44beb08b | 4 | #include "taiko.h" |
amutake | 10:79bb44beb08b | 5 | |
amutake | 10:79bb44beb08b | 6 | Serial pc(USBTX, USBRX); |
amutake | 10:79bb44beb08b | 7 | |
amutake | 10:79bb44beb08b | 8 | button_t taiko2button(Taiko t) |
amutake | 10:79bb44beb08b | 9 | { |
amutake | 12:54aeb978fe9d | 10 | |
amutake | 10:79bb44beb08b | 11 | switch (t) { |
amutake | 12:54aeb978fe9d | 12 | case Un: |
amutake | 12:54aeb978fe9d | 13 | return 0; |
amutake | 10:79bb44beb08b | 14 | case Don: |
amutake | 10:79bb44beb08b | 15 | return CIRCLE; |
amutake | 10:79bb44beb08b | 16 | case Ka: |
amutake | 10:79bb44beb08b | 17 | return R1; |
amutake | 12:54aeb978fe9d | 18 | case Renda: |
amutake | 12:54aeb978fe9d | 19 | return CIRCLE; |
amutake | 15:ed0c2da735c2 | 20 | case DonDai: |
amutake | 15:ed0c2da735c2 | 21 | return CIRCLE|LEFT; |
amutake | 15:ed0c2da735c2 | 22 | case KaDai: |
amutake | 15:ed0c2da735c2 | 23 | return L1|R1; |
amutake | 10:79bb44beb08b | 24 | } |
amutake | 10:79bb44beb08b | 25 | return 0; |
amutake | 10:79bb44beb08b | 26 | } |
amutake | 10:79bb44beb08b | 27 | |
amutake | 11:21b3b0494baa | 28 | TaikoSource::TaikoSource(note** ns, int s, float b) |
amutake | 10:79bb44beb08b | 29 | { |
amutake | 10:79bb44beb08b | 30 | note_seq = ns; |
amutake | 10:79bb44beb08b | 31 | size = s; |
amutake | 10:79bb44beb08b | 32 | bpm = b; |
amutake | 10:79bb44beb08b | 33 | index = 0; |
amutake | 10:79bb44beb08b | 34 | frame_i = 0; |
amutake | 11:21b3b0494baa | 35 | lag = 0; |
amutake | 10:79bb44beb08b | 36 | } |
amutake | 10:79bb44beb08b | 37 | |
amutake | 10:79bb44beb08b | 38 | button_t TaikoSource::await() |
amutake | 10:79bb44beb08b | 39 | { |
amutake | 10:79bb44beb08b | 40 | if (index >= size) { |
amutake | 10:79bb44beb08b | 41 | return 0; |
amutake | 10:79bb44beb08b | 42 | } |
amutake | 11:21b3b0494baa | 43 | |
amutake | 10:79bb44beb08b | 44 | note* n = note_seq[index]; |
amutake | 11:21b3b0494baa | 45 | float len = n->length * (60 / bpm); // note length (sec) |
amutake | 10:79bb44beb08b | 46 | float passing = frame_i * FRAME; // passing time since the begining of this note (sec) |
amutake | 11:21b3b0494baa | 47 | |
amutake | 10:79bb44beb08b | 48 | frame_i++; |
amutake | 11:21b3b0494baa | 49 | |
amutake | 10:79bb44beb08b | 50 | button_t btn = 0; |
amutake | 12:54aeb978fe9d | 51 | |
amutake | 12:54aeb978fe9d | 52 | if (n->taiko == Renda) { |
amutake | 12:54aeb978fe9d | 53 | if (passing + FRAME >= len - lag) { |
amutake | 12:54aeb978fe9d | 54 | frame_i = 0; |
amutake | 12:54aeb978fe9d | 55 | index++; |
amutake | 12:54aeb978fe9d | 56 | lag = passing + FRAME - (len - lag); |
amutake | 12:54aeb978fe9d | 57 | } else { |
amutake | 12:54aeb978fe9d | 58 | if (frame_i % 2 == 0) { |
amutake | 14:83af8f502d83 | 59 | btn = CIRCLE; // TODO |
amutake | 12:54aeb978fe9d | 60 | } else { |
amutake | 14:83af8f502d83 | 61 | btn = LEFT; // TODO |
amutake | 12:54aeb978fe9d | 62 | } |
amutake | 12:54aeb978fe9d | 63 | } |
amutake | 12:54aeb978fe9d | 64 | } else { |
amutake | 12:54aeb978fe9d | 65 | if (passing < len / 2) { // in the former of this note |
amutake | 12:54aeb978fe9d | 66 | btn = taiko2button(n->taiko); |
amutake | 12:54aeb978fe9d | 67 | } else if (passing + FRAME >= len - lag) { // final frame of this note |
amutake | 12:54aeb978fe9d | 68 | frame_i = 0; |
amutake | 12:54aeb978fe9d | 69 | index++; |
amutake | 12:54aeb978fe9d | 70 | lag = passing + FRAME - (len - lag); |
amutake | 12:54aeb978fe9d | 71 | } |
amutake | 10:79bb44beb08b | 72 | } |
amutake | 10:79bb44beb08b | 73 | return btn; |
amutake | 10:79bb44beb08b | 74 | } |