eheh perfetto!
guardandolo un attimo e facendo qualche prova ho notato che effettivamente è possibile!
ho buttato giù queste quattro righe e danno il risultato sperato! 
grazie mille ora non mi resta che adattarlo ai miei giochini xD
comunque, si, lavoro in console
	codice:
	#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
    char tasto=0;
    int j=1, i;
    for (i=0; i<500; i++)
    {
        j=1;
        while (!kbhit())
        {
              sleep(200);
              j=0;
              if (j==0)
                 break;
        }
        if (kbhit())
           tasto=getch();
        if (tasto=='a')
            printf("Sinistra\n");
        else if (tasto=='d')
            printf("Destra\n");
        else if (tasto=='s')
            printf("Giu'\n");
        else if (tasto=='w')
            printf("Su\n");
        else if ((tasto!='a')&&(tasto!='d')&&(tasto!='s')&&(tasto!='w')&&(tasto!=0))
            printf("Nessun comando valido!\n");
        else
            printf("Nessun comando!\n");
    }
    system("pause");
    return 0;
}
 
però adesso mi stava prendendo il multithreading, e se possibile vorrei capire dove sta l'errore in questo codice, perchè non riesco a farlo funzionare correttamente
	codice:
	#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
void thread1(int *);
void thread2(int *);
int main()
{
    int scelta, x=0;
    do {
        x=0;
        _beginthread(thread1, &x);
        _beginthread(thread2, &x);
    } while (x==0);
    system("pause");
    return 0;
}
void thread1(int *x)
{
     char pos;
     pos=getch();
     if (pos=='a')
         printf("<--\n");
     else if (pos=='d')
         printf("-->\n");
     (*x)=1;
}
void thread2(int *x)
{
     sleep(5000);
     printf("Tempo!\n");
     (*x)=1;
}
 
non capisco perchè il thread non si ferma una volta che assegno x=1..
e grazie di nuovo!!  