Mam problem i nie mam pojęcia, dlaczego tak się dzieje i jak to naprawić. Pracuję nad opracowaniem Videogame z Python i pygame i dostaję ten błąd:TypeError: Obiekt "NoneType" nie ma atrybutu "__getitem__"
File "/home/matt/Smoking-Games/sg-project00/project00/GameModel.py", line 15, in Update
self.imageDef=self.values[2]
TypeError: 'NoneType' object has no attribute '__getitem__'
Kod:
import pygame,components
from pygame.locals import *
class Player(components.Entity):
def __init__(self,images):
components.Entity.__init__(self,images)
self.values=[]
def Update(self,events,background):
move=components.MoveFunctions()
self.values=move.CompleteMove(events)
self.imageDef=self.values[2]
self.isMoving=self.values[3]
def Animation(self,time):
if(self.isMoving and time==1):
self.pos+=1
if (self.pos>(len(self.anim[self.imageDef])-1)):
self.pos=0
self.image=self.anim[self.imageDef][self.pos]
Czy możesz mi wyjaśnić co to oznacza błąd i dlatego jest dzieje się, więc mogę to naprawić?
W pewien sposób 'self.values' jest ustawione na Brak. Co ma zrobić 'move.CompleteMove'? Jaką wartość zwraca? – BrenBarn
Należy również zauważyć, że każda funkcja, która nie posiada instrukcji return, zwróci wartość "None", dlatego należy dokładnie sprawdzić, czy nie występuje w tym przypadku. – DaveP