【问题标题】:How to update a Sprite in pygame which takes in a function i.e. lambda?如何更新pygame中的Sprite,它接受一个函数,即lambda?
【发布时间】:2020-09-12 00:42:28
【问题描述】:

假设我有一个类似的按钮精灵类

class Button(pygame.sprite.Sprite): 
     def __init__(self, callback, ...):
         self.callback = callback

现在,回调是一个函数,但需要一个数组并对其进行处理。单击按钮后,数组会更改,但现在我想在新数组上应用相同的按钮?

请注意,该按钮在第一次迭代时有效,但现在我希望使用新数组更新该函数。

【问题讨论】:

  • 执行回调的任何代码都应作为参数传入数组。设置回调应该不会影响这一点。

标签: python pygame sprite


【解决方案1】:

如果您将一个 lambda(或包含作为闭包的数组的函数)传递给 callback,那么您需要做的就是用一个新的重新分配 self.callback。我建议用一种方法来做。

    def set_callback(self, callback):
        self.callback = callback

您可以将回调设置在您想要更改的任何位置,包括在之前的回调函数中。

【讨论】:

    猜你喜欢
    • 2011-02-25
    • 1970-01-01
    • 2012-06-30
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    相关资源
    最近更新 更多