This code prints 5 or 6 times the same key for each keypress (zx81), it's too fast. Any idea on the correct technique to process keys inside a game loop ?
Code: Select all
Loop:
while(!(Key=in_Inkey()));
printf("%d ", Key);
goto Loop;
Code: Select all
Loop:
while(!(Key=in_Inkey()));
printf("%d ", Key);
goto Loop;
Code: Select all
#if defined(__LYNX__) || defined(__NASCOM__)
#define DELAY_AFTER_KEYPRESS 20
#elif defined(__ZX81__) || defined(__ZX80__) || defined(__PC6001__) || defined(__EXCALIBUR64__)
#define DELAY_AFTER_KEYPRESS 40
#elif defined(__PV1000__)
#define DELAY_AFTER_KEYPRESS 50
#elif defined(__GAL__)
#define DELAY_AFTER_KEYPRESS 60
#elif defined(__SUPER80__) || defined(__KAYPRO83__) || defined(__SORCERER__) || defined(__EINSTEIN__) || defined(__ABC80__)
#define DELAY_AFTER_KEYPRESS 100
#elif defined(__ALPHATRO__) || defined(__TRS80__)
#define DELAY_AFTER_KEYPRESS 130
#elif defined(__SPC1000__)
#define DELAY_AFTER_KEYPRESS 250
#elif defined(__Z1013__)
#define DELAY_AFTER_KEYPRESS 300
#elif defined(__PC88__)
#define DELAY_AFTER_KEYPRESS 400
#else
// default value: OK for PV2000, Coleco, KC, Spectrum, VG5000, VZ200, Laser 500, etc.
#define DELAY_AFTER_KEYPRESS 200
#endif
Code: Select all
msleep(DELAY_AFTER_KEYPRESS);