I'm not sure if/how this answers your question, so please feel free to follow up. I don't know a way of doing simultaneous key detection, but I do know a way to do non-blocking input that doesn't mess up colors. For example, from Tetrizm:
Code:
Code:
if (0 != GetKeyWait_OS(&kcol,&krow,KEYWAIT_HALTOFF_TIMEROFF,1,0,&key)) {
//key was returned
int newpiecex = curpiecex;
if (kcol == 2 && krow == 9 && curpiecex > 0) newpiecex--;
if (kcol == 3 && krow == 8 && curpiecex < GRID_WIDTH-width) newpiecex++;
if (kcol == 4 && krow == 9) {
gameactive = 0;
goto finishgamefree;
}