在Pygame中,拖放界面是不可行的吗?

时间:2011-09-17 22:16:04

标签: graphics pygame

我正在使用Pygame构建一个简单的RPG,并希望实现一个拖放库存。然而,即使考虑到单独表面的布局,似乎每次用户拖动项目时都需要重新计算整个屏幕。是否最好允许有限的运动范围,或者实施这样的界面根本不可行?

2 个答案:

答案 0 :(得分:3)

在所有窗口系统中重绘大部分或全部屏幕是非常正常的事情。这很少是一个问题,因为屏幕上的大多数对象都可以快速绘制。

为了实现这一点,有必要组织所有必须绘制的游戏对象,以便能够以正确的顺序快速找到和绘制它们。这通常意味着特定类型的对象被分组为某种层。绘图代码可以遍历每一层,并且对于每一层中的每个对象,请求对象绘制自己。如果某个特定的图层绘制成本很高,因为它有很多对象,可以存储预渲染的表面和blit。

获得类似效果的一个非常简单的方法是在拖动到表面的开始时捕获屏幕,然后在每个帧而不是整个游戏中进行blit。这显然只在游戏中有意义,拖动也意味着游戏的其余部分被有效暂停。

答案 1 :(得分:0)

pygame.org上有很多GUI示例,以及GUI库。