Здесь есть несколько проблем, которые могут способствовать вашим проблемам.
Во-первых, хотя это не ошибка, а скорее производительность, вы не должны помещать count
s и другие методы объекта, такие как intValue
в ваших условиях, так как это замедляет работу программы.Определите локальную переменную непосредственно перед вашими циклами, равную этому числу, а затем используйте эту переменную в цикле, чтобы программа не учитывала один и тот же массив или извлекала одно и то же значение снова и снова при каждом цикле.
Что еще более важно, я нигде не вижу, чтобы вы использовали кеш спрайтовых кадров (спрайт-пакет), и если вы используете спрайт-массивы очень большого размера, где количество массивов велико, и манипулируете ими и рисуете эти спрайты много раз, как есть.обычно запрашиваемые операциями с маркерами, вы могли бы добавить ненужную нагрузку на OpenGL, возможно, создав ошибку буфера, которую вы видели.
Вы должны использовать пакет спрайтов cocos для своих массивов спрайтов и попробовать еще раз;по крайней мере, это значительно улучшит производительность программы для пулевых операций.