Как удалить список при столкновении в игре в Pygame?
Сама ошибка заключается в том, что вылазит ошибка 'list' object has no attribute 'kill'.
if check_collision(coin_rect):
score += 1
coins.kill()
import pygame
# import minigame
clock = pygame.time.Clock()
weight = 1200
height = 640
pygame.init()
display = pygame.display.set_mode((weight,height))
pygame.display.set_caption("Elinder Game")
avatar = pygame.image.load("images/avatar.png").convert()
pygame.display.set_icon(avatar)
background = pygame.image.load("images/bg2.png").convert_alpha()
# background1 = pygame.image.load("images/bg1.png").convert_alpha()
player_stay = pygame.image.load("images/cat/catstay.png").convert_alpha()
pygame.mixer.init()
background_music = pygame.mixer.music.load("sounds/background.mp3")
player = pygame.image.load("images/cat/catrunright1.png").convert_alpha()
pygame.mixer.music.set_volume(10)
text = pygame.font.Font("fonts/font.otf", 10)
coins = [pygame.image.load("images/coin1.png"),
pygame.image.load("images/coin2.png"),
pygame.image.load("images/coin3.png"),
pygame.image.load("images/coin4.png"),
pygame.image.load("images/coin5.png")
]
text_surface = text.render("Game by rmkhv", True, (255,255,255))
walk_right = [
pygame.image.load("images/cat/catrunright1.png").convert_alpha(),
pygame.image.load("images/cat/catrunright2.png").convert_alpha(),
pygame.image.load("images/cat/catrunright3.png").convert_alpha(),
pygame.image.load("images/cat/catrunright4.png").convert_alpha(),
pygame.image.load("images/cat/catrunright5.png").convert_alpha(),
pygame.image.load("images/cat/catrunright6.png").convert_alpha(),
]
walk_left = [
pygame.image.load("images/cat/catrunleft2.png").convert_alpha(),
pygame.image.load("images/cat/catrunleft3.png").convert_alpha(),
pygame.image.load("images/cat/catrunleft4.png").convert_alpha(),
pygame.image.load("images/cat/catrunleft5.png").convert_alpha(),
pygame.image.load("images/cat/catrunleft6.png").convert_alpha(),
clock.tick(10)
]
goblin_stay = [
pygame.image.load("images/goblin/Sprite-0002.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0003.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0004.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0005.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0006.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0007.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0008.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0009.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0010.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0011.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0012.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0013.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0014.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0015.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0016.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0017.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0018.png").convert_alpha(),
pygame.image.load("images/goblin/Sprite-0019.png").convert_alpha()
]
goblin_attack_right = [
pygame.image.load("images/goblin/Goblin_attack_right1.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_attack_right2.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_attack_right3.png").convert_alpha(),
]
goblin_attack_left = [
pygame.image.load("images/goblin/Goblin_attack_left1.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_attack_left1.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_attack_left1.png").convert_alpha(),
]
goblin_run_right = [
pygame.image.load("images/goblin/Goblin_run_right1.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_right2.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_right3.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_right4.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_right5.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_right6.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_right7.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_right8.png").convert_alpha()
]
goblin_run_left = [
pygame.image.load("images/goblin/Goblin_run_left1.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_left2.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_left3.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_left4.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_left5.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_left6.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_left7.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin_run_left8.png").convert_alpha(),
clock.tick(10)
]
goblin_death = [
pygame.image.load("images/goblin/Goblin._death1.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin._death2.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin._death3.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin._death4.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin._death5.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin._death6.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin._death7.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin._death8.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin._death9.png").convert_alpha(),
pygame.image.load("images/goblin/Goblin._death10.png").convert_alpha()
]
goblin_x = 600
goblin_y = 435
player_anim = 0
goblin_anim = 0
coin_anim = 0
bg_x = 0
text_x = 0
player_speed = 2
playerx = 100
playery = 465
camera_x = 0
camera_y = 0
jump = False
jump_count = -9
score = 0
player_rect = walk_right[0].get_rect(centerx=playerx//1, bottom=playery//1)
coin_rect = coins[0].get_rect(centerx=180, bottom=465)
coin_render = text.render("score: " + str(score), True, (255,255,255))
def check_collision(barriers):
for barrier in barriers:
if playerx + playery >= barrier:
if barrier <= playerx <= barrier:
return True
elif barrier <= playerx + playery <= barrier:
return True
return False
running = True
while running:
if check_collision(coin_rect):
score += 1
coins.kill()
pygame.mixer.music.play()
display.blit(background, (camera_x,camera_y))
display.blit(text_surface,(500,0))
display.blit(coins[coin_anim], (180,465))
display.blit(coin_render, (0,0))
if coin_anim == 4:
coin_anim = 0
else:
coin_anim += 1
if goblin_anim == 17 or goblin_anim == 7:
goblin_anim = 0
else:
goblin_anim += 1
keys = pygame.key.get_pressed()
if keys[pygame.K_RIGHT]:
display.blit(walk_right[player_anim], (playerx, playery))
bg_x -= 10
if bg_x < -1250:
bg_x = -5
text_x -= 20
elif keys[pygame.K_LSHIFT]:
display.blit(walk_left[player_anim], (playerx, playery))
elif keys[pygame.K_RSHIFT]:
display.blit(walk_right[player_anim], (playerx, playery))
bg_x -= 15
if bg_x < -1250:
bg_x = -5
text_x -= 25
elif keys[pygame.K_LEFT]:
display.blit(walk_left[player_anim], (playerx, playery))
else:
display.blit(player_stay, (playerx, playery))
if keys[pygame.K_RIGHT] and playerx < 1000:
playerx += player_speed
elif keys[pygame.K_LEFT] and playerx > 50:
playerx -= player_speed
elif keys[pygame.K_LSHIFT] and playerx > 50:
playerx -= player_speed + 3
elif keys[pygame.K_RSHIFT] and playerx < 1000:
playerx += player_speed + 3
if player_anim == 4 or player_anim == 2:
player_anim = 0
else:
player_anim += 1
if not jump:
if keys[pygame.K_UP]:
jump = True
else:
if jump_count <= 9:
if jump_count < 0:
playery -= (jump_count ** 2) // 2
else:
playery += (jump_count ** 2) // 2
jump_count += 1
else:
jump = False
jump_count = -9
if goblin_x == 0:
goblin_x = 1200
goblin_x -= 2
if goblin_x < 1200:
display.blit(goblin_run_left[goblin_anim], (goblin_x,goblin_y))
else:
display.blit(goblin_stay[goblin_anim], (goblin_x,goblin_y))
# display.blit(background1, (0,0))
pygame.display.update()
for exitt in pygame.event.get():
if exitt.type == pygame.QUIT:
running = False
pygame.quit()
clock.tick(60)
check_collision(coin_rect)
Источник: Stack Overflow на русском