Usavi l'algoritmo sbagliato: il tuo missile avanzava soltanto quando il tasto era premuto. Invece dovresti avere una coda di oggetti (missili, nemici, quello che ti serve in sostanza) che vengono aggiornati indipendentemente dai tasti premuti.
Nel loop di aggiornamento del gioco faresti una cosa del tipo:
codice:for (int i = 0; i < DIM; i++) missili[i].Update(); if (keys[KEY_A]) aggiungi_missile();

Rispondi quotando