Das klingt nach 3 verschiedenen ineinander vermischte Fragen!
Wie ist Dein Konzept?
Sollen die Asteroiden nur in der Nähe des Players erstellt werden und in einer bestimmten Distanz wieder entfernt werden?
Dann müßtest Du die Erschaffung der Asteroiden in eine if-Abfrage einbetten:
(in pseudo-code:)
if(vec_dist(player.x, temp.x) KLEINER Höchstabstand) --> dann erschaffe!
und in die move_asteroid
schreibst du eine while abfrage:
while((vec_dist(player.x, temp.x) KLEINER Höchstabstand) --> dann bewege mich wie einen Asteroiden
und dahinter ausserhalb der Klammer schreibst
ent_remove(me);
Wie gesagt, ist nur als Pseudocode geschrieben.