我目前正在使用pygame开发一个项目,我需要能够查看部分表面,移动,放大和缩小等等
任何人都可以推荐一种有效实现这一目标的方法,我现在让它以一种错综复杂的方法工作,但它太慢了,当缩小以查看整个区域时,将游戏缩小到大约1fps。 (我的版本只滚动,没有缩放工作正常,没有滞后)
虽然文档pygame.transform.scroll看起来很有前途,但我不确定如何使用pygame.transform.scale正确实现它以放大和缩小
欢迎任何帮助
更新 我摆弄了一下,让它在滑动它们之前缩放物体和它们的位置。我现在遇到的问题是缩放看起来不自然,因为pygame滚轮事件的分辨率很低,所以我现在试图暗示某种平滑。
答案 0 :(得分:1)
我不完全确定你到底在做什么。但我可以说,听起来你并没有以适合Pygame的方式解决问题。
听起来我觉得你依赖的是Pygame使用的软件缩放算法,可以将大图(整个游戏世界)扩展到更小的尺寸。对于大型表面和每个框架,任何类似的东西都会给CPU带来极大的压力。
如果缩放非常重要,我建议更改具有硬件加速缩放的库,即pyglet。毕竟,你有多少时间看到游戏在GPU之前缩小了?实际上从来没有,这是多久。
答案 1 :(得分:0)
你可以将pygame与OpenGL一起使用,因为你已经熟悉了pygame。否则pyglet是一个类似的opengl库。
答案 2 :(得分:0)
对于我从未完成过的游戏,我使用三角法通过自由缩放和转动的相机获得新的绘图位置(位复杂)。它并没有真正花费太多时间来计算,但我认为使用其他库更有效。但如果你想要一些例子,请问。