繁体   English   中英

在 pygame 我有这个问题: += 不支持的操作数类型:'int' 和 'list'

[英]in pygame i have that problem: unsupported operand type(s) for +=: 'int' and 'list'

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

在 function 移动中,在第 3 行"self.rect.centerx += self.speed * time"控制台告诉我:

类型错误:+= 不支持的操作数类型:“int”和“list”

self.speed是一个列表:

 self.speed = [0,0]

您必须解决列表中的一个元素(例如self.speed[0]而不是self.speed ):

self.rect.centerx += self.speed[0] * time 

self.speed 是一个列表,您不能将 list 和 int 添加在一起。

self.rect.centerx += self.speed[0] * time

像这样使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM