如何更新 pygame 中接受函数(即 lambda)的 Sprite?
How to update a Sprite in pygame which takes in a function i.e. lambda?
假设我有一个按钮精灵 class 喜欢
class Button(pygame.sprite.Sprite):
def __init__(self, callback, ...):
self.callback = callback
现在,回调是一个函数,但是接受一个数组并用它做一些事情。单击按钮后,数组发生更改,但现在我想在新数组上应用相同的按钮?
请注意,该按钮在第一次迭代时有效,但现在我希望使用新数组更新该函数。
如果您将 lambda(或包含数组作为闭包的函数)传递给 callback
,那么您需要做的就是用一个新的重新分配 self.callback
。我建议用一种方法来做。
def set_callback(self, callback):
self.callback = callback
您可以在任何需要更改的地方设置回调,包括在之前的回调函数中。
假设我有一个按钮精灵 class 喜欢
class Button(pygame.sprite.Sprite):
def __init__(self, callback, ...):
self.callback = callback
现在,回调是一个函数,但是接受一个数组并用它做一些事情。单击按钮后,数组发生更改,但现在我想在新数组上应用相同的按钮?
请注意,该按钮在第一次迭代时有效,但现在我希望使用新数组更新该函数。
如果您将 lambda(或包含数组作为闭包的函数)传递给 callback
,那么您需要做的就是用一个新的重新分配 self.callback
。我建议用一种方法来做。
def set_callback(self, callback):
self.callback = callback
您可以在任何需要更改的地方设置回调,包括在之前的回调函数中。