Потому что сравниваете координаты не объекта hunter_1, а не связанные с ним координаты
if hunter_pos_y < pos_y_rand:
hunter_pos_y += 1
когда должно быть примерно так
if hunter_1.y < pos_y_rand:
hunter_1.y += 1
Аналогично и координаты целей (pos_y_rand). Сейчас координаты охотника сравниваются просто с этой рандомной точкой каждый раунд, а не с координатами реального объекта - цели.
К тому же этот самый hunter каждый цикл создается заново, хотя по логике предполагаю он должен быть только 1.
Т.е. создание объекта hunter нужно вынести наружу цикла, а координаты проверять по аттрибутам объекта, его же и двигать.
Во-вторых, эти цели (звёзды?) в текущем виде нигде не сохраняются, каждый цикл предыдущие объекты-цели перезаписываются, остается только их изображение на экране. Т.е. координаты ранее созданных целей взять будет негде. Если все же логика работы была - ходить за этими целями, то их нужно хранить (самое простое - добавлять к списку).