gpt4 book ai didi

python - Pygame 零 : TypeError: cannot create weak reference to 'NoneType' object

转载 作者:行者123 更新时间:2023-12-05 06:01:37 25 4
gpt4 key购买 nike

你好,我目前正在编写一个小的 2D 游戏。我已经想出了运动等。现在我想使用我在此处找到的内容添加一个简单的动画:

def anim_right():
global counter_right
imagesright = ["tesbold_right1_x1000.png","tesbold_right2_x1000.png"]
Tesbold.image = imagesright[counter_right]
counter_right = (counter_right + 1) % len(imagesright)
print("anim_right ausgeführt")

我在每个主要方向都有这个。这也可以正常工作,唯一的异常(exception)是它会导致癫痫发作,因为我在我的 update() 函数中调用了这个函数。基本上每一帧都在改变图像。

我曾考虑添加一个 clock.schedule_unique 但这似乎行不通。

如果我像这样在动画函数中添加它:

def anim_right():
global counter_right
imagesright = ["tesbold_right1_x1000.png","tesbold_right2_x1000.png"]
Tesbold.image = imagesright[counter_right]
counter_right = (counter_right + 1) % len(imagesright)
print("anim_right ausgeführt")
clock.schedule_unique(anim_right(), 0.5)

我收到以下错误代码:

RecursionError: maximum recursion depth exceeded

如果我在调用我的 anim_right() 函数的函数中尝试这样:

def update():               #Updates per Frame
global walking
if walking == True:
if Tesbold.direction == 0:
clock.schedule_unique(anim_right(), 0.5)

我收到以下错误代码:

TypeError: cannot create weak reference to 'NoneType' object

我已经搜索了两个错误代码,但没有找到对我的案例有用的东西。

最佳答案

您收到错误“RecursionError:超出最大递归深度”,因为anim_right() 是一个函数调用语句。
clock.schedule_unique(anim_right(), 0.5) 行实际调用函数 anim_right 并将返回值传递给 clock.schedule_unique。这会导致无限递归。

您必须传递函数本身(anim_right 而不是 anim_right()):

clock.schedule_unique(anim_right(), 0.5)

clock.schedule_unique(anim_right, 0.5)

关于python - Pygame 零 : TypeError: cannot create weak reference to 'NoneType' object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67128053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com