Как игрушка, я использую ITunes SDK и XNA, чтобы создать свою собственную игру quasi-GuitarHero. Фактические библиотеки не важны, поэтому я не пометил их. Этот вопрос касается структуры данных.Запись/получение входных событий с нерегулярной частотой
В принципе, я хочу начать играть песню и позволить пользователю играть на гитаре с песней, записывая в память красные/желтые/зеленые/синие/оранжевые клавиши, а также полосу для воспроизведения позже ,
Я пробовал несколько различных методов, наиболее точным из которых является побитовый массив int[]
, где каждый элемент представляет временной интервал 10 мс (и каждый бит каждого int представляет физический ключ) один раз в качестве смещения от начала композиции. Однако это кажется неэффективным, поскольку я должен использовать клавиши в этих слотах 10 мс, не говоря уже о большом размере массива для нескольких минутной песни.
Любые предложения по лучшему способу реализации этого? Моя цель - затем сериализовать эту структуру данных на диск для последующего поиска. Общая цель этого проекта состоит в том, чтобы использовать эти данные для управления светодиодами каким-то образом для песни, FWIW.
Спасибо!
Вам может понадобиться человек с музыкой/математическими знаниями, чтобы помочь? 10 мс кажется слишком коротким для промежутка между двумя нотами, но я не эксперт. :) –
Вы попали в гвоздь на голове o.k.w., 10ms слишком короткий, но что-то меньшее в этом даст непрактично ginormous массив! – bufferz
Если 10 мс слишком короткий, разве вы не должны пытаться увеличить значение, например, 50 мс вместо чего-то меньшего? –