Ti ricordo che il linguaggio di riferimento (ed eventualmente la libreria con cui hai problemi) va inserito nel titolo; come l'altra volta, anche qui l'ho inserito io, in futuro ricordatene.
Quanto al tuo problema, è normale che si verifichi, dato che, se stai lavorando nel for, tutto il resto nel frattempo è bloccato.
Quello che si fa normalmente nei giochi è implementare un "game loop", ovvero un ciclo che ad ogni iterazione si occupa di aggiornare lo stato di tutti gli elementi di gioco, attende un tot (per evitare di divorare la CPU e avere temporizzazioni diverse a seconda del PC) e ricomincia.
Per questo motivo, non puoi semplicemente animare il proiettile con un for: dovrai avere una qualche struttura dati in cui memorizzerai (1) se è stato sparato un proiettile e (2) la sua posizione, direzione e velocità corrente; ad ogni iterazione del game loop, controllerai se esiste il proiettile, e in tal caso aggiornerai la sua posizione con i dati memorizzati nella struttura in questione. Se poi vuoi avere più proiettili, dovrai prevedere più di una struttura di questo genere (probabilmente un array di struct può andare più che bene).