2013-10-12 48 views
5

從本教程下面的代碼片段: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) 

是給我一個:

TypeError: 'tuple' object does not support item assignment

我明白這可能是因爲badguy是一個元組。這意味着它是不可變的(你不能改變它的值)香港專業教育學院嘗試了以下內容:

t= list(badguy) 
     t[0]= t[0]-7 
     i+=1 

我轉換的元組的列表,以便我們能減7但在比賽中沒有任何反應。

有沒有人知道我能做什麼?

謝謝。

回答

17

更改此

badguy[0]-=7 

這個

badguy = list(badguy) 
badguy[0]-=7 
badguy = tuple(badguy) 

另外,如果能留下badguylist,那麼甚至不使用的元組,你會被罰款與您當前的代碼(與使用列表而不是元組添加更改)

+0

在我的遊戲中,我沒有任何動作,這些變化 –

+0

@ Pro-grammer:然後,你還有其他問題。我提出的解決方案需要處理你的'元組'問題。如果你有不同的問題,我建議做另一個帖子 – inspectorG4dget

+0

好吧,謝謝你的幫助到目前爲止:-) –

1

另一種解決方案是代替

badguy[0] -= 7 

badguy = (badguy[0] - 7,) + badguy[1:] 

這與零元素的更新值共創一個新的記錄。

相關問題