Как удалить список при столкновении в игре в Pygame?

Рейтинг: 0Ответов: 0Опубликовано: 12.02.2023

Сама ошибка заключается в том, что вылазит ошибка '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)

Ответы

Ответов пока нет.