一个简单的问题:为什么“列表”对象没有属性“ x”

时间:2019-12-16 20:28:05

标签: python pygame

很抱歉,如果这很简单,但找不到答案。我试图在pygame中获得随机敌人(它们应该是相同的,但会随机生成)。

所以我上课:

class Enemy(object): 
       def __init__(self, ...):
          ...
          self.visible = True 
    #and then I wanna make a list of this object

E1 = []
#in my while loop 
while True:
      ...
      if event.type == USEREVENT+2:
                EN1.append(Enemy(10, 20, 64, 64, 259))

      if len(enemy_bullets) < 1:
            rocks.append(ro((round(EN1.x + EN1.width//2) - 30), (round(EN1.y + EN1.height//2) - 50), 23, 23)) 

我从*导入了pygame.locals,并从一开始就设置了

pygame.time.set_timer(USEREVENT+2, random.randint(1000, 5000))

我的错误是“列表”对象没有属性“ x”,如果我对此发表评论,我在if E1.visible == True:中遇到另一个错误……它说:“列表”对象没有属性“可见”。 为什么?

1 个答案:

答案 0 :(得分:1)

就像@dcg在评论中说的那样,EN1是一个列表。您将追加到该列表,然后在该列表中拥有Enemy类的对象。如果您想访问一个敌人的属性,则需要索引该列表(即EN1 [敌人的索引]),然后访问其中的变量,例如:

EN1[index].x