很抱歉,如果这很简单,但找不到答案。我试图在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:
中遇到另一个错误……它说:“列表”对象没有属性“可见”。
为什么?
答案 0 :(得分:1)
就像@dcg在评论中说的那样,EN1是一个列表。您将追加到该列表,然后在该列表中拥有Enemy类的对象。如果您想访问一个敌人的属性,则需要索引该列表(即EN1 [敌人的索引]),然后访问其中的变量,例如:
EN1[index].x