Added instruments to mary.json. Fixed Window resize.
This commit is contained in:
parent
f16e4e0c6f
commit
a71bb2830a
@ -25,246 +25,77 @@
|
|||||||
{
|
{
|
||||||
"channel": 0,
|
"channel": 0,
|
||||||
"controlChanges": {
|
"controlChanges": {
|
||||||
"1": [
|
"7": [{"number": 7, "ticks": 0, "time": 0, "value": 0.7874015748031497}]
|
||||||
{
|
|
||||||
"number": 1,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"6": [
|
|
||||||
{
|
|
||||||
"number": 6,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0.5039370078740157
|
|
||||||
},
|
},
|
||||||
{
|
"pitchBends": [{"ticks": 0, "time": 0, "value": 0}],
|
||||||
"number": 6,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0.5039370078740157
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"number": 6,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0.09448818897637795
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"7": [
|
|
||||||
{
|
|
||||||
"number": 7,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0.7874015748031497
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"10": [
|
|
||||||
{
|
|
||||||
"number": 10,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0.5039370078740157
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"11": [
|
|
||||||
{
|
|
||||||
"number": 11,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 1
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"38": [
|
|
||||||
{
|
|
||||||
"number": 38,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"100": [
|
|
||||||
{
|
|
||||||
"number": 100,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0.015748031496062992
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"number": 100,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0.007874015748031496
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"number": 100,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"101": [
|
|
||||||
{
|
|
||||||
"number": 101,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"number": 101,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"number": 101,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"121": [
|
|
||||||
{
|
|
||||||
"number": 121,
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"pitchBends": [
|
|
||||||
{
|
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"value": 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"instrument": {
|
"instrument": {
|
||||||
"family": "piano",
|
"family": "pipe",
|
||||||
"number": 0,
|
"number": 73,
|
||||||
"name": "acoustic grand piano"
|
"name": "flute"
|
||||||
},
|
},
|
||||||
"name": "",
|
"name": "Melody 1",
|
||||||
"notes": [
|
"notes": [
|
||||||
{
|
{"duration": 0.5, "durationTicks": 480, "midi": 64, "name": "E4", "ticks": 0, "time": 0, "velocity": 0.7874015748031497},
|
||||||
"duration": 0.5,
|
{"duration": 0.5, "durationTicks": 480, "midi": 62, "name": "D4", "ticks": 480, "time": 0.5, "velocity": 0.7874015748031497},
|
||||||
"durationTicks": 480,
|
{"duration": 0.5, "durationTicks": 480, "midi": 60, "name": "C4", "ticks": 960, "time": 1, "velocity": 0.7874015748031497}
|
||||||
"midi": 64,
|
],
|
||||||
"name": "E4",
|
"endOfTrackTicks": 1440
|
||||||
"ticks": 0,
|
|
||||||
"time": 0,
|
|
||||||
"velocity": 0.7874015748031497
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"duration": 0.5,
|
"channel": 1,
|
||||||
"durationTicks": 480,
|
"controlChanges": {
|
||||||
"midi": 62,
|
"7": [{"number": 7, "ticks": 0, "time": 0, "value": 0.7874015748031497}]
|
||||||
"name": "D4",
|
},
|
||||||
"ticks": 480,
|
"pitchBends": [{"ticks": 0, "time": 0, "value": 0}],
|
||||||
"time": 0.5,
|
"instrument": {
|
||||||
"velocity": 0.7874015748031497
|
"family": "strings",
|
||||||
|
"number": 40,
|
||||||
|
"name": "violin"
|
||||||
|
},
|
||||||
|
"name": "Melody 2",
|
||||||
|
"notes": [
|
||||||
|
{"duration": 0.5, "durationTicks": 480, "midi": 62, "name": "D4", "ticks": 1440, "time": 1.5, "velocity": 0.7874015748031497},
|
||||||
|
{"duration": 0.5, "durationTicks": 480, "midi": 64, "name": "E4", "ticks": 1920, "time": 2, "velocity": 0.7874015748031497},
|
||||||
|
{"duration": 0.5, "durationTicks": 480, "midi": 64, "name": "E4", "ticks": 2400, "time": 2.5, "velocity": 0.7874015748031497},
|
||||||
|
{"duration": 1, "durationTicks": 960, "midi": 64, "name": "E4", "ticks": 2880, "time": 3, "velocity": 0.7874015748031497}
|
||||||
|
],
|
||||||
|
"endOfTrackTicks": 3840
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"duration": 0.5,
|
"channel": 2,
|
||||||
"durationTicks": 480,
|
"controlChanges": {
|
||||||
"midi": 60,
|
"7": [{"number": 7, "ticks": 0, "time": 0, "value": 0.7874015748031497}]
|
||||||
"name": "C4",
|
},
|
||||||
"ticks": 960,
|
"pitchBends": [{"ticks": 0, "time": 0, "value": 0}],
|
||||||
"time": 1,
|
"instrument": {
|
||||||
"velocity": 0.7874015748031497
|
"family": "guitar",
|
||||||
|
"number": 24,
|
||||||
|
"name": "acoustic guitar (nylon)"
|
||||||
|
},
|
||||||
|
"name": "Melody 3",
|
||||||
|
"notes": [
|
||||||
|
{"duration": 0.5, "durationTicks": 480, "midi": 62, "name": "D4", "ticks": 3840, "time": 4, "velocity": 0.7874015748031497},
|
||||||
|
{"duration": 0.5, "durationTicks": 480, "midi": 62, "name": "D4", "ticks": 4320, "time": 4.5, "velocity": 0.7874015748031497},
|
||||||
|
{"duration": 1, "durationTicks": 960, "midi": 62, "name": "D4", "ticks": 4800, "time": 5, "velocity": 0.7874015748031497}
|
||||||
|
],
|
||||||
|
"endOfTrackTicks": 5760
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"duration": 0.5,
|
"channel": 3,
|
||||||
"durationTicks": 480,
|
"controlChanges": {
|
||||||
"midi": 62,
|
"7": [{"number": 7, "ticks": 0, "time": 0, "value": 0.7874015748031497}]
|
||||||
"name": "D4",
|
|
||||||
"ticks": 1440,
|
|
||||||
"time": 1.5,
|
|
||||||
"velocity": 0.7874015748031497
|
|
||||||
},
|
},
|
||||||
{
|
"pitchBends": [{"ticks": 0, "time": 0, "value": 0}],
|
||||||
"duration": 0.5,
|
"instrument": {
|
||||||
"durationTicks": 480,
|
"family": "chromatic percussion",
|
||||||
"midi": 64,
|
"number": 9,
|
||||||
"name": "E4",
|
"name": "glockenspiel"
|
||||||
"ticks": 1920,
|
|
||||||
"time": 2,
|
|
||||||
"velocity": 0.7874015748031497
|
|
||||||
},
|
},
|
||||||
{
|
"name": "Melody 4",
|
||||||
"duration": 0.5,
|
"notes": [
|
||||||
"durationTicks": 480,
|
{"duration": 0.5, "durationTicks": 480, "midi": 64, "name": "E4", "ticks": 5760, "time": 6, "velocity": 0.7874015748031497},
|
||||||
"midi": 64,
|
{"duration": 0.5, "durationTicks": 480, "midi": 67, "name": "G4", "ticks": 6240, "time": 6.5, "velocity": 0.7874015748031497},
|
||||||
"name": "E4",
|
{"duration": 1, "durationTicks": 960, "midi": 67, "name": "G4", "ticks": 6720, "time": 7, "velocity": 0.7874015748031497}
|
||||||
"ticks": 2400,
|
|
||||||
"time": 2.5,
|
|
||||||
"velocity": 0.7874015748031497
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"duration": 1,
|
|
||||||
"durationTicks": 960,
|
|
||||||
"midi": 64,
|
|
||||||
"name": "E4",
|
|
||||||
"ticks": 2880,
|
|
||||||
"time": 3,
|
|
||||||
"velocity": 0.7874015748031497
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"duration": 0.5,
|
|
||||||
"durationTicks": 480,
|
|
||||||
"midi": 62,
|
|
||||||
"name": "D4",
|
|
||||||
"ticks": 3840,
|
|
||||||
"time": 4,
|
|
||||||
"velocity": 0.7874015748031497
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"duration": 0.5,
|
|
||||||
"durationTicks": 480,
|
|
||||||
"midi": 62,
|
|
||||||
"name": "D4",
|
|
||||||
"ticks": 4320,
|
|
||||||
"time": 4.5,
|
|
||||||
"velocity": 0.7874015748031497
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"duration": 1,
|
|
||||||
"durationTicks": 960,
|
|
||||||
"midi": 62,
|
|
||||||
"name": "D4",
|
|
||||||
"ticks": 4800,
|
|
||||||
"time": 5,
|
|
||||||
"velocity": 0.7874015748031497
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"duration": 0.5,
|
|
||||||
"durationTicks": 480,
|
|
||||||
"midi": 64,
|
|
||||||
"name": "E4",
|
|
||||||
"ticks": 5760,
|
|
||||||
"time": 6,
|
|
||||||
"velocity": 0.7874015748031497
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"duration": 0.5,
|
|
||||||
"durationTicks": 480,
|
|
||||||
"midi": 67,
|
|
||||||
"name": "G4",
|
|
||||||
"ticks": 6240,
|
|
||||||
"time": 6.5,
|
|
||||||
"velocity": 0.7874015748031497
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"duration": 1,
|
|
||||||
"durationTicks": 960,
|
|
||||||
"midi": 67,
|
|
||||||
"name": "G4",
|
|
||||||
"ticks": 6720,
|
|
||||||
"time": 7,
|
|
||||||
"velocity": 0.7874015748031497
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"endOfTrackTicks": 7680
|
"endOfTrackTicks": 7680
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,8 +12,8 @@
|
|||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
constexpr int LANE_COUNT = 12;
|
constexpr int LANE_COUNT = 12;
|
||||||
constexpr int MAX_INSTRUMENT_TYPES = 8;
|
|
||||||
constexpr int MAX_GAMEPADS = 4;
|
constexpr int MAX_GAMEPADS = 4;
|
||||||
|
constexpr int MAX_INSTRUMENT_TYPES = MAX_GAMEPADS;
|
||||||
constexpr float RECEPTOR_HEIGHT = 150.0f;
|
constexpr float RECEPTOR_HEIGHT = 150.0f;
|
||||||
constexpr float HIT_ZONE_MARGIN = 20.0f;
|
constexpr float HIT_ZONE_MARGIN = 20.0f;
|
||||||
constexpr float SCROLL_PX_PER_SEC = 350.0f;
|
constexpr float SCROLL_PX_PER_SEC = 350.0f;
|
||||||
@ -53,63 +53,39 @@ const int KEY_KEYS[LANE_COUNT] = {
|
|||||||
KEY_V,
|
KEY_V,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* One color per instrument type (MIDI program % MAX_INSTRUMENT_TYPES). */
|
/* One color per track (track index % MAX_INSTRUMENT_TYPES). */
|
||||||
const Color INSTRUMENT_COLORS[MAX_INSTRUMENT_TYPES] = {
|
const Color INSTRUMENT_COLORS[MAX_INSTRUMENT_TYPES] = {
|
||||||
{220, 100, 100, 255},
|
{220, 100, 100, 255}, // red
|
||||||
{100, 160, 255, 255},
|
{100, 160, 255, 255}, // blue
|
||||||
{100, 220, 120, 255},
|
{100, 220, 120, 255}, // green
|
||||||
{255, 200, 80, 255},
|
{255, 200, 80, 255}, // yellow
|
||||||
{200, 100, 255, 255},
|
|
||||||
{80, 255, 220, 255},
|
|
||||||
{255, 140, 180, 255},
|
|
||||||
{180, 255, 140, 255},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Per-instrument WAV paths (lane = midi % 12). C4–B4 map to lanes 0–11. Reuse same set until more assets exist. */
|
/* Per-instrument WAV paths (lane = midi % 12). C4–B4 map to lanes 0–11. Reuse same set until more assets exist. */
|
||||||
const char* const INSTRUMENT_LANE_WAV[MAX_INSTRUMENT_TYPES][LANE_COUNT] = {
|
const char* const INSTRUMENT_LANE_WAV[MAX_INSTRUMENT_TYPES][LANE_COUNT] = {
|
||||||
{"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
{ // Instrument 0
|
||||||
|
"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
||||||
{"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
{ // Instrument 1
|
||||||
|
"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
||||||
{"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
{ // Instrument 2
|
||||||
|
"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
||||||
{"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
{ // Instrument 3
|
||||||
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
|
||||||
{"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
|
||||||
{"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
|
||||||
{"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_Gs4.wav", "assets/sounds/nes_harp/nes_harp_A4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_As4.wav", "assets/sounds/nes_harp/nes_harp_B4.wav"},
|
|
||||||
{"assets/sounds/nes_harp/nes_harp_C4.wav", "assets/sounds/nes_harp/nes_harp_Cs4.wav",
|
|
||||||
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
"assets/sounds/nes_harp/nes_harp_D4.wav", "assets/sounds/nes_harp/nes_harp_Ds4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
"assets/sounds/nes_harp/nes_harp_E4.wav", "assets/sounds/nes_harp/nes_harp_F4.wav",
|
||||||
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
"assets/sounds/nes_harp/nes_harp_Fs4.wav", "assets/sounds/nes_harp/nes_harp_G4.wav",
|
||||||
@ -136,11 +112,11 @@ std::vector<Glyph> chart_from_song(const Song& song)
|
|||||||
float bpm = song.header.bpm > 0.0f ? song.header.bpm : 120.0f;
|
float bpm = song.header.bpm > 0.0f ? song.header.bpm : 120.0f;
|
||||||
float ticks_per_sec = ppq * (bpm / 60.0f);
|
float ticks_per_sec = ppq * (bpm / 60.0f);
|
||||||
|
|
||||||
|
int track_index = 0;
|
||||||
for (const Track& track : song.tracks)
|
for (const Track& track : song.tracks)
|
||||||
{
|
{
|
||||||
int instrument_slot = track.instrument.number % MAX_INSTRUMENT_TYPES;
|
int instrument_slot = track_index % MAX_INSTRUMENT_TYPES;
|
||||||
if (instrument_slot < 0)
|
track_index++;
|
||||||
instrument_slot = 0;
|
|
||||||
for (const Note& note : track.notes)
|
for (const Note& note : track.notes)
|
||||||
{
|
{
|
||||||
if (note.midi < 0 || note.midi > 127)
|
if (note.midi < 0 || note.midi > 127)
|
||||||
@ -271,11 +247,7 @@ public:
|
|||||||
{
|
{
|
||||||
auto font_manager = game->get_manager<FontManager>();
|
auto font_manager = game->get_manager<FontManager>();
|
||||||
font = font_manager->get_font("Roboto");
|
font = font_manager->get_font("Roboto");
|
||||||
screen_width = static_cast<float>(GetScreenWidth());
|
update_layout();
|
||||||
screen_height = static_cast<float>(GetScreenHeight());
|
|
||||||
upper_bar_y = screen_height - RECEPTOR_HEIGHT;
|
|
||||||
hit_line_y = screen_height - RECEPTOR_HEIGHT / 2.0f;
|
|
||||||
lane_width = screen_width / LANE_COUNT;
|
|
||||||
for (int slot = 0; slot < MAX_INSTRUMENT_TYPES; slot++)
|
for (int slot = 0; slot < MAX_INSTRUMENT_TYPES; slot++)
|
||||||
{
|
{
|
||||||
for (int lane = 0; lane < LANE_COUNT; lane++)
|
for (int lane = 0; lane < LANE_COUNT; lane++)
|
||||||
@ -363,8 +335,18 @@ public:
|
|||||||
score += 100 + std::min(combo * 10, 50);
|
score += 100 + std::min(combo * 10, 50);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void update_layout()
|
||||||
|
{
|
||||||
|
screen_width = static_cast<float>(GetScreenWidth());
|
||||||
|
screen_height = static_cast<float>(GetScreenHeight());
|
||||||
|
upper_bar_y = screen_height - RECEPTOR_HEIGHT;
|
||||||
|
hit_line_y = screen_height - RECEPTOR_HEIGHT / 2.0f;
|
||||||
|
lane_width = screen_width / LANE_COUNT;
|
||||||
|
}
|
||||||
|
|
||||||
void update(float delta_time) override
|
void update(float delta_time) override
|
||||||
{
|
{
|
||||||
|
update_layout();
|
||||||
if (game_ended)
|
if (game_ended)
|
||||||
{
|
{
|
||||||
if (is_menu_pressed())
|
if (is_menu_pressed())
|
||||||
|
|||||||
@ -28,7 +28,7 @@ public:
|
|||||||
auto height = GetScreenHeight();
|
auto height = GetScreenHeight();
|
||||||
auto title_text_size = MeasureTextEx(font, title.c_str(), 64, 0);
|
auto title_text_size = MeasureTextEx(font, title.c_str(), 64, 0);
|
||||||
|
|
||||||
std::string subtitle = "Press Start or Enter to Play";
|
std::string subtitle = "Press Start";// or Enter to Play";
|
||||||
auto subtitle_text_size = MeasureTextEx(font, subtitle.c_str(), 32, 0);
|
auto subtitle_text_size = MeasureTextEx(font, subtitle.c_str(), 32, 0);
|
||||||
|
|
||||||
ClearBackground(SKYBLUE);
|
ClearBackground(SKYBLUE);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user