Czas wciskania guzika
Ostatnio zmodyfikowano 2014-05-15 19:14
najkosz Temat założony przez niniejszego użytkownika |
Czas wciskania guzika » 2014-04-25 16:23:34 Napisałem pianino w WinAPI, oto kod: #include<conio.h> #include<windows.h> double c = 261.625568; double cis = 277.182634; double d = 293.664771; double dis = 311.126987; double e = 329.627560; double f = 349.228235; double fis = 369.994427; double g = 391.995440; double gis = 415.304702; double a = 440.000005; double ais = 466.163766; double h = 493.883306; double c2 = 523.251136; double cis2 = 554.365268; double d2 = 587.329542; double dis2 = 622.253974; double e2 = 659.255121; double f2 = 698.456470; double fis2 = 739.988853; double g2 = 783.990880; double gis2 = 830.609404; long double a2 = 880.000009; double ais2 = 932.327533; double h2 = 987.766613; double c3 = 1046.502272; int main() { char z; while( z != 27 ) { z = getch(); if( z == 'a' ) { Beep( c2, 150 ); } if( z == 'w' ) { Beep( cis2, 150 ); } if( z == 's' ) { Beep( d2, 150 ); } if( z == 'e' ) { Beep( dis2, 150 ); } if( z == 'd' ) { Beep( e2, 150 ); } if( z == 'f' ) { Beep( f2, 150 ); } if( z == 't' ) { Beep( fis2, 150 ); } if( z == 'g' ) { Beep( g2, 150 ); } if( z == 'y' ) { Beep( gis2, 150 ); } if( z == 'h' ) { Beep( a2, 150 ); } if( z == 'u' ) { Beep( ais2, 150 ); } if( z == 'j' ) { Beep( h2, 150 ); } if( z == 'k' ) { Beep( c3, 150 ); } } return 0; }
Chciałbym zmierzyć czas wciskania przycisków w milisekundach, aby móc przekazywać to jako drugi argument funkcji Beep. Jak wykonać to, żeby przy przyciśnięciu naliczanie czasu się zaczęło, a przy puszczeniu skończyło i przekazało to do funkcji? |
|
pekfos |
» 2014-04-25 18:22:46 Nie uzyskasz w ten sposób pożądanego efektu. Poza tym, pianino tak nie działa. |
|
najkosz Temat założony przez niniejszego użytkownika |
» 2014-05-15 18:40:47 Przepraszam za długą nieobecność. Wiem, że tak nie działa, grałem przez 3 lata jako instrument dodatkowy, właśnie jestem u kolegi-pianisty. Jak wtedy zrobić, żeby grało dopóty, dopóki klawisz jest wciśnięty? |
|
Monika90 |
» 2014-05-15 19:14:20 Za pomocą Beep tego nie zrobisz, bo dla Beep musisz z góry podać czas trwania. Użyj MIDI. Windows ma wbudowany prosty syntezator (prynajmniej tak jest w Windows XP). |
|
« 1 » |