Pygame缩放/滚动窗口

Hug*_*ogo 5 python scroll pygame transform zoom

我目前正在使用pygame进行一个项目,我需要能够查看部分表面,移动,放大和缩小等

任何人都可以推荐一种有效实现这一目标的方法,我现在让它以一种复杂的方法工作,但它太慢了,缩小时将游戏缩小到大约1fps,以便查看整个区域.(我的版本只滚动,没有缩放工作正常,没有滞后)

虽然文档pygame.transform.scroll看起来很有希望,但我不确定如何使用pygame.transform.scale正确实现它以放大和缩小

欢迎任何帮助

更新: 我摆弄了一下,让它在bliting对象之前缩放对象和它们的位置.我现在遇到的问题是缩放看起来不自然,因为pygame滚轮事件的分辨率很低,所以我现在试图暗示某种平滑.

por*_*uod 1

我不完全确定你到底在做什么。然而我可以说,听起来你并没有以适合 Pygame 的方式解决这个问题。

在我看来,您正在依赖软件缩放算法(Pygame 使用的算法)将大图片(整个游戏世界)缩放到小得多的尺寸。对于大表面和每个帧,任何类似的事情都会极大地消耗您的 CPU。

如果缩放确实很重要,我建议更改具有硬件加速缩放的库,即pyglet。毕竟,在 GPU 出现之前,您有多少次看到游戏缩小了?几乎从来没有,就是这么频繁。