class Nave(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load('images/nave.png')
self.rect = self.image.get_rect()
self.rect.centerx = width / 2
self.rect.centery = height / 2
self.speed = [0,0]
def move(self,time,keys):
if self.rect.right >= 0 :
if keys[K_RIGHT]:
self.rect.centerx += self.speed * time
if self.rect.left <= width:
if keys[K_LEFT]:
self.rect.centerx -= self.speed * time
在函数move中的第3行"self.rect.centerx += self.speed * time"
控制台中说我:
TypeError:+ =不支持的操作数类型:“ int”和“ list”
答案 0 :(得分:1)
self.speed
是一个列表:
self.speed = [0,0]
您必须处理列表中的某个元素(例如self.speed[0]
而不是self.speed
):
self.rect.centerx += self.speed[0] * time
答案 1 :(得分:1)
self.speed是您不能将list和int一起添加的列表。
self.rect.centerx += self.speed[0] * time
那样使用。