本教程中的以下代码片段:http://www.raywenderlich.com/24252/beginning-game-programming-for-teens-with-python

for badguy in badguys:
        if badguy[0]<-64:
            badguys.pop(index)
        badguy[0]-=7
        index+=1
    for badguy in badguys:
        screen.blit(badguyimg, badguy)

给我一个:



我知道这可能是因为badguy是一个元组。这意味着它是不可变的(您不能更改其值)我尝试了以下方法:
t= list(badguy)
        t[0]= t[0]-7
        i+=1

我将元组转换为列表,所以我们可以减去7。但是在游戏中什么也没有发生。

有人知道我能做什么吗?

谢谢。

最佳答案

改变这个

badguy[0]-=7

进入这个
badguy = list(badguy)
badguy[0]-=7
badguy = tuple(badguy)

另外,如果您可以将badguy保留为list,那么甚至不要使用元组,并且您会满意当前的代码(使用列表而不是元组的附加更改)

10-05 22:11