Pygame отстает из-за повторяющихся циклов, но не знаю альтернативного решения - PullRequest
0 голосов
/ 03 марта 2019

В моей игре я хочу сделать так, чтобы всякий раз, когда моя мышь перемещалась по слотам в инвентаре игрока, появлялось информационное окно, если в слоте есть предмет.Тем не менее, единственный способ сделать это - циклически перемещаться по всем объектам слота инвентаря при каждом перемещении курсора мыши и проверять, находятся ли x и y курсора мыши внутри слота.

Этот код используется всякий раз, когда курсор мыши перемещается, чтобы проверить, находится ли курсор внутри объекта слота инвентаря (if event.type == pygame.MOUSEMOTION):

for slot in self.inventory:
    if slot.rect.collidepoint(pygame.mouse.get_pos()) and slot.item is not None:
    # show information window if True
    pass

Хотя это работает, оно делает игрузапаздывание всякий раз, когда курсор мыши перемещается из-за цикличности.

Могу ли я выполнить такую ​​проверку без прохождения каждого из слотов в инвентаре игрока?

1 Ответ

0 голосов
/ 03 марта 2019

Исправлено.

Всякий раз, когда я размышлял над слотами, я хотел, чтобы они тоже горели.Оказывается, я звонил pygame.image.load каждый раз, когда двигал мышью, чтобы сделать это.Изменил это так, чтобы это было уже предварительно загружено, и я просто переключался между изображениями, и отставание прекратилось.

Еще раз спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...