如何解决如何将项目附加到班级列表中?
我正在 pygame 中编写一个小游戏,我不得不将项目从类添加到列表中,但是当我运行代码时,第二个“障碍”没有出现,因为“障碍”中的“移动”函数class 不会将该项目附加到列表中。 有人知道如何解决这个问题吗?
这是一些代码:
obs = []
class obstacles():
def __init__(self):
self.x = screen_width
self.y = screen_height - ob_height
self.rect = Rect(self.x,self.y,ob_width,ob_height)
self.speed = 4
def draw(self):
pygame.draw.rect(screen,ob_col,self.rect)
def move(self):
self.rect.x -= self.speed
if self.rect.x < 100:
obs.append(obstacles())
def init():
obs.append(obstacles())
ob_disegno = obstacles()
sq_disegno = square()
init()
run = True
while run:
clock.tick(fps)
screen.fill(background)
ob_disegno.move()
sq_disegno.draw()
for i in obs:
ob_disegno.draw()
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
pygame.display.update()
pygame.quit()
解决方法
当然,对象被添加到列表中。但是,您永远不会绘制列表中的对象,因此您永远不会看到新对象。你只是画ob_disegno
:
for i in obs:
ob_disegno.draw()
您需要移动并绘制列表的元素:
for ob in obs:
ob.move()
ob.draw()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。