Прежде всего, никогда не пытайтесь выполнить какой-либо цикл в GameLoop. Он сбрасывает fps игры, потому что обычно занимает больше памяти.
Теперь кажется, что вы просто хотите уничтожить пули после исчезновения с экрана, и вы тоже используете физику, так почему вы не пользуетесь этим?
Вот шаги, которые вы должны выполнить. (Если вы обнаружите какой-либо вопрос или затруднение по этому поводу, спросите меня)
1.Нанесите статическую физическую линию немного выше экрана. Допустим, у -20.
local _yLimit = -20
local _limitLine = display.newLine(0,_yLimit,display.contentWidth,_yLimit)
_limitLine.anchorX = 0
_limitLine.anchorY = 0
2.Добавить все пули как физический объект.
3. Примените силу в нижнем центре пули, а не трансформируйте ее. [Предполагая, что пуля имеет прямоугольную физическую форму, в противном случае определите точку равновесия формы].
4. Проверьте наличие коллизий с помощью прослушивателя событий «коллизия».
5. Уничтожить пули при столкновении
Это так просто:)
Дайте мне знать, если у вас все еще есть проблемы по этому поводу.