#python #list #pygame #append
#питон #Список #pygame #добавлять
Вопрос:
Почему, когда я пытаюсь удалить пузырь из списка, он говорит, что пузыря нет в списке. Сначала у меня возникла проблема с попыткой добавить второй пузырь, но я посмотрел, как это сделать. Для этой проблемы я посмотрел, как ее решить, и там было сказано добавить .скопируйте, где находятся мои циклы for, но это не сработало. Пожалуйста, помогите быстро и заранее спасибо!
class Bubble(): def __init__(self, x, y, width, height): self.x = x self.y = y self.width = width self.height = height self.vel = 1 self.velx = 4 self.jumpcount = 13 self.left = False self.right = False self.walkcount = 0 self.max = 399 self.facing = 5 def drawb(self, win): win.blit(ball, (self.x,self.y)) def pop(): bubbles.append(Bubble(0, 0, 100, 100)) def redrawGameWindow(): win.blit(background, (0, -150)) for bullet in bullets: bullet.draw3(win) for arrow in arrows: arrow.draw4(win) octo.draw(win) for bubble in bubbles: b.drawb(win) octo2.draw2(win) pygame.display.update() run = True b = Bubble(0, 0, 64, 64) octo2 = p2(300, 400, 64, 64) octo = p1(300, 400, 64, 64) bullets = [] arrows = [] bubbles = [] if start: bubbles.append(Bubble(0, 0, 100, 100)) while run: clock.tick(27) for event in pygame.event.get(): if event.type == pygame.QUIT: run = False for bullet in bullets: if bullet.y gt; -100: bullet.y -= bullet.vel d_x = abs(bullet.x) - abs(b.x) d_y = abs(bullet.y) - abs(b.y) d = math.sqrt(d_x**2 d_y**2) if d lt; 50: bubbles.remove(Bubble) pop() bullets.pop(bullets.index(bullet)) else: bullets.pop(bullets.index(bullet)) for arrow in arrows: if arrow.y gt; -100: arrow.y -= arrow.vel d_x = abs(arrow.x) - abs(b.x) d_y = abs(arrow.y) - abs(b.y) d = math.sqrt(d_x**2 d_y**2) if d lt; 50: bubbles.remove(Bubble) pop() arrows.pop(arrows.index(arrow)) else: arrows.pop(arrows.index(arrow)) for bubble in bubbles: if b.velx gt;= 9: b.velx = 9 if start: b.y = 9 b.x = 3 if b.y gt; 360: jump = True start = False if (b.facing == 5): direction = 1 else: direction = -1 if b.x gt; 775: b.facing = 0 grav = 0.15 if b.x lt; 0: b.facing = 5 grav = 0.15 b.velx = 1 if grav gt;= 7: grav = 7 b.velx = 1 if jumpcount gt;= -15 and jump and b.y lt; 360: b.x = b.velx * direction b.y -= ((jumpcount * abs(jumpcount)) * 0.25) / grav b.vel -= 1 jumpcount -= (.5) else: if b.y gt;= 361: jumpcount = b.jumpcount b.y -= (abs((jumpcount * abs(jumpcount)) * 0.25) / grav)
Ответ №1:
Вы пытаетесь удалить Bubble
класс, а не конкретный экземпляр.
Комментарии:
1. Как бы я это исправил?