由于反复循环,Pygame滞后,但不知道任何替代解决方案

问题描述 投票:1回答:1

在我的游戏中,我想做到这一点,每当我的鼠标移动到玩家库存中的插槽时,如果插槽中有一个项目,就会弹出一个信息窗口。但是,我能想到的唯一方法就是在鼠标光标移动时循环遍历所有库存槽对象,并检查鼠标光标的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

虽然这样可行,但是当鼠标光标因循环而移动时,它会使游戏延迟。

有没有办法在不经过玩家库存中的每个插槽的情况下进行这种检查?

python pygame
1个回答
0
投票

固定它。

每当我在插槽上移动时,我都希望它们也能点亮。事实证明,当我移动鼠标时,我正在调用pygame.image.loade。更改它,以便它已经预先加载,我只是在图像之间切换,并且滞后停止。

再次感谢!

© www.soinside.com 2019 - 2024. All rights reserved.