Как удалить объект спрайта Pygame?
Мне нужно удалять спрайт из массива, когда он выходит за границу...
Вот код:
import pygame
pygame.init()
win = pygame.display.set_mode((700, 400))
pygame.display.set_caption("Защита")
pygame.display.set_icon(pygame.image.load("images/sheald.png"))
fon = pygame.image.load("images/fon.png")
class Bullet(pygame.sprite.Sprite):
def __init__(self, y, speed, image):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load(image).convert_alpha()
self.rect = self.image.get_rect(center=(70, y + 20))
self.speed = speed
def update(self):
self.rect.x += self.speed
win.blit(self.image, self.rect)
playerY = 70
playerX = 20
bull = []
bulletsNumber = 10
FPS = 60
def shoot():
global bulletsNumber
if bulletsNumber > 0:
bulletsNumber -= 1
bullet = Bullet(playerY, 2, 'images/bullet.png')
bull.append(bullet)
def window():
win.blit(fon, (0, 0))
pygame.draw.rect(win, (236, 218, 103), (playerX, playerY, 40, 40))
for bul in bull:
bul.update()
if bul.rect.x >= 700:
**тут нужно удалить объект**
window - это обновление экрана shoot - создание объекта
Как это сделать?
Ответы (1 шт):
Автор решения: K_R_O_K_O_D_I_L_L_O
→ Ссылка
имя_массива.remove(нужный_фрагмент_массива)
имя_массива.pop(номер_в_массиве)
например:
a = [1,2,3]
a.remove(1)
a - [2,3]
a.pop(0)
a - [3]