#python #pygame
Вопрос:
Я создаю игру «Палач» с помощью Pygame, и у меня проблема. В моем коде у меня есть цикл «во время выполнения:», который обновляется при частоте кадров в секунду = 60. В этом цикле есть «случайный выбор(темы)», который выбирает случайную тему в Hangman, которая определит, какой набор слов будет использоваться. Моя проблема в том, что каждый раз, когда цикл сбрасывается, «случайный выбор(темы)» выбирает другую тему и на экране. Темы постоянно переключаются между доступными темами.
Мне было интересно, как заставить эту конкретную строку кода запускаться один раз, чтобы выбрать тему и не переключаться между несколькими?
Вот фрагмент цикла:
while run:
clock.tick(FPS) # FPS = 60
# draw title
topics = ["PLACES", "SPORTS", "FOOD AND DRINK", "OPPOSITE WORDS"]
text = TITLE_FONT.render(random.choice(topics), 1, BLACK)
window.blit(text, (WIDTH/2 - text.get_width()/2, 20))
draw() # not important here
Ответ №1:
Выберите его перед циклом while
-:
topics = ["PLACES", "SPORTS", "FOOD AND DRINK", "OPPOSITE WORDS"]
text = TITLE_FONT.render(random.choice(topics), 1, BLACK)
while run:
clock.tick(FPS) # FPS = 60
# draw title
window.blit(text, (WIDTH/2 - text.get_width()/2, 20))
Если вам нужно выбрать его в зависимости от условия, укажите, чтобы выбрать новую тему с переменной. Сбросьте переменную, когда выбрана тема. Таким образом, вы всегда можете выбрать новую тему, установив choose_topic = True
:
choose_topic = True
while run:
clock.tick(FPS) # FPS = 60
if choose_topic:
choose_topic = False
topics = ["PLACES", "SPORTS", "FOOD AND DRINK", "OPPOSITE WORDS"]
text = TITLE_FONT.render(random.choice(topics), 1, BLACK)
# draw title
window.blit(text, (WIDTH/2 - text.get_width()/2, 20))