Когда в вопросе говорится, что «изображение расширяется» - я считаю, что это всего лишь визуальный артефакт предыдущего изображения, которое не стирается.
Если строка:
screen.fill( 0,0,0 ) # paint the background black
добавляется в начале цикла:
while True:
screen.fill( 0,0,0 ) # paint the background black
for event in pygame.event.get():
Удаляет ранее нарисованного пришельца с экрана.
Лучший способ справиться с подобными вещами - использовать встроенные в PyGame спрайты . Это может показаться дополнительной работой прямо сейчас, но избавит вас от многих хлопот в будущем, так как большая часть «хлопот», связанных с перемещением объектов (обнаружением коллизий и т. Д.), Уже обрабатывается спрайтовым кодом Pygame.