Я пытаюсь создать сценарий, который дает игроку 5 жизней за каждые 100 очков. Это работает, но слишком хорошо. Когда я запускаю код и набираю 100 очков, он не перестает давать жизни и прекращается только тогда, когда я получаю больше очков.
Это код, который я использую:
def increase_lives():
global lives
global score
global extralives
if score % 100 == 0 and score != 0 or keyboard.lctrl and keyboard.ralt:
extralives = 1
if extralives == 1:
lives += 5
extralives -= 1
Я использую Thonny с PyGame и PGZero. Любая помощь очень ценится.
Вы можете создать временную переменную, чтобы отметить «веху».
global lives
global score
global extralives
global milestone
if (score % 100 == 0 and score != 0 and score != milestone) or (keyboard.lctrl and keyboard.ralt):
extralives = 1
milestone = score
if extralives == 1:
lives += 5
extralives -= 1
Я не эксперт, но думаю, вам следует использовать какой-нибудь флаг, чтобы ограничить его один раз.
В лучшем случае это комментарий; а не реальный ответ.
Вам нужна дополнительная глобальная переменная для хранения очков, за которые вы уже отдали жизни. Только если новый счет больше, добавьте больше жизней.