Vorrei fare un giochino con un'astronave. Mi servirebbero due tipi di codice.

Muovere l'astronave nelle 8 direzioni classiche (movimento in 2D laterale).

E vorrei realizzare gli spari delle astronavi nemiche, che puntano alla nave.
Avevo pensato di prendere le coordinate dell'astronave nemica dalla quale proviene lo sparo, e che vadano in direzione della coodinata di quel momento dell'astronave buona, ma senza seguirla. Va solo nella direzione dove si trova l'astronave nell'istante in cui il colpo viene sparato. Quindi l'astronave ha la possibilità di evitarlo.

Non saprei come fare per far muovere in questo modo il colpo in modo che la diagonale del colpo sia così flessibile.

Mi potete aiutare?