Как породить другой спрайт после того, как один "удален" - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь сделать игру, похожую на концепцию игры в змею, для проекта.Я хочу сделать так, чтобы, когда игрок «съел» «еду», в другом месте случайно появился другой.

Я пробовал несколько кодов отсюда и из других источников, но я не могу заставить ихзапустить.Всегда будут разные ошибки.

Это код, который я сейчас использую.Я получил его из интернета, и он работал на человека, но он не работает для меня.Я думаю, что list.remove может быть проблема с этим кодом, но я не знаю, как его редактировать:

food_collide = pygame.sprite.spritecollide(player,food_list,False)

    for food in  food_collide:
        score += 1
        food_list.remove(food)
        all_sprite_list.remove(food)
        food.update()
        all_sprite_list.update()

1 Ответ

1 голос
/ 11 июня 2019

Мне кажется, что вы никогда не создадите новый экземпляр Food() после того, как убьете предыдущий (когда его съел игрок). Очевидно, что игра не порождает новую еду.

Это быстрое исправление for food in food_collide должно работать:

for food in food_collide:
    score += 1
    food_list.remove(food)
    newfood = Food()
    food_list.add(newfood)
    all_sprite_list.add(newfood)
    all_sprite_list.remove(food)
    food_list.update()
    all_sprite_list.update()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...