Искать остаток от деления 20 раз в секунду это незаметная мелочь. Но у меня вопрос другой, почему вы не сделали спаун еды по времени и почему всего 20 фпс?
А если у меня очень слабый компуктер и выдает всего 10фпс, то играя в вашу игру я буду получать еды меньше чем другие в два раза...
Обычно как делается, есть переменная deltaTime, можете сами ее высчитывать. Это время прошедшее с последнего кадра, до этого (1 итерация). В идеале в вашей игре это 0,05, но если игра зависнет на 2 секунды то оно будет равно 2.
Так вот, желательно бы делать движения, спаун еды и все остальное относительно этого времени.
То есть создаем переменную, типа buffSpawnFoodTime. Прибавляем каждую итерацию к ней deltaTime.
К примеру спаун еды идет каждые 1,5 секунды. Количество спаунов еды на этой итерации равно
count = int(buffSpawnFoodTime/ 1.5)
buffSpawnFoodTime -= int(buffSpawnFoodTime/ 1.5) * 1.5
В таком случае если игра зависнет на 6 секунд, то после развисания произойдет положенные 4 раздачи еды.
И вообще зависимость игры от фпс это очень не хорошо.