У меня есть игра (использующая pygame), для которой я хочу улучшить производительность.Я заметил, что когда у меня низкий fps, игра использует максимум 20% процессора, есть ли способ использовать потоки, чтобы использовать больше процессора?
Я уже пытался реализовать потоки,но, похоже, не повезло, некоторая помощь будет оценена.
Эта функция вызывает задержку:
Первая версия
def SearchFood(self):
if not self.moving:
tempArr = np.array([])
for e in entityArr:
if type(e) == Food:
if e.rect != None and self.viewingRect != None:
if self.viewingRect.colliderect(e.rect):
tempArr = np.append(tempArr, e)
if tempArr.size > 0:
self.nearestFood = sorted(tempArr, key=lambda e: Mag((self.x - e.x, self.y - e.y)))[0]
Вторая версия (медленнее)
def SearchFood(self):
if not self.moving:
s_arr = sorted(entityArr, key=lambda e: math.hypot(self.x - e.x, self.y - e.y))
for e, i in enumerate(s_arr):
if type(e) != Food:
self.nearestFood = None
else:
self.nearestFood = s_arr[i]
break
Я просматриваювесь список сущностей и сортируйте его после, если сущность является пищей, и расстояние до предмета, который хочет съесть указанную еду.Проблема состоит в том, что массив сущностей имеет длину 500 элементов (и более), и, следовательно, для его перебора и сортировки требуется очень много времени.Затем исправить то, что я хочу использовать больше процессора с использованием потоков.
Вот полный сценарий, если это поможет: https://github.com/Lobsternator/Game-Of-Life-Esque.git