【问题标题】:Make a sprite get gradually get smaller pygame让精灵逐渐变小
【发布时间】:2016-02-17 14:29:04
【问题描述】:

我试图让 pygame 中的精灵在按住键时逐渐变小。有什么办法可以做到吗?

我已经用

让它在一个键上点击到一个设定的大小
self.img = pygame.transform.scale(self.img, (40, 40))

但是当你按住一个键时,我无法让它逐渐变小。

提前致谢!

【问题讨论】:

  • 为什么不在按键被按下时,在游戏循环的每次迭代中将大小减小 x?
  • 问题在于你需要一个尺寸来减小形式,所以你必须在主游戏循环之前设置一个尺寸,但这会返回 UnboundLocalError: local variable 'size' referenced before assignment @SirParselot
  • 图像具有原始尺寸,所以只要得到它,这就是你的起点
  • 如果你用它来减少(例如 self.img = pygame.transform.scale(self.img, (start_size - x, start_size - x)) )你将不得不增加 x 所以你没有一遍又一遍地做同样的事情,但这也返回 UnboundLocalError: local variable 'x' referenced before assignment @SirParselot 。我可能只是在这里完全愚蠢,但我看不到这样做的方法
  • self.img = pygame.transform.scale(self.img, (self.img.get_width()-1, self.img.get_height()-1)) 不会给出想要的结果吗?在您描述的方法中,您必须将x 或将start_size 更改为current_size,这就是我刚刚展示的。

标签: python python-2.7 pygame


【解决方案1】:

您可以获取图像的当前大小,而不是使用固定大小,并在按下键时为游戏的每个循环将其减小x,因此您只需将比例线更改为

self.img=pygame.transform.scale(self.img, (self.img.get_width()-x, self.img.get_height()-x))

【讨论】:

    猜你喜欢
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    相关资源
    最近更新 更多