Здравствуйте!
Создав стабильный экран с надписями я смог добавить "подсвечивание" выбора пользователя посредством увеличения шрифта, однако столкнулся с проблемой, что обращаясь к действию на enter
if event.type == pygame.K_RETURN:
lost.menter = True
Данное действие не передаётся никак, словно я не нажимаю никакую клавишу (на другие также назначал).
Я пробовал вынести выбор в отдельную функцию и вызывать её отдельно, пробовал прописывать значения внутри функции "update_menu", однако каждый раз сталкиваюсь с проблемой, что шрифт меняется символизируя, что ввод активен, но не могу активировать команду выбора какой либо строки.
import pygame.font, stats
class Game_over():
"""Экран поражения"""
def __init__(self, screen):
"""запуск экрана"""
self.screen = screen
self.screen_rect = self.screen.get_rect()
self.color = (255, 0, 0)
self.font = pygame.font.SysFont(None, 150)
self.font1 = pygame.font.SysFont(None, 100)
self.mup = False
self.mdown = False
self.menter = False
self.image_lost()
self.menu()
self.update_menu()
self.show_lost(screen)
def image_lost(self):
"""отображением экрана поражения"""
self.lost_image = self.font.render("GAME OVER!", False, self.color)
self.lost_rect = self.lost_image.get_rect()
self.lost_rect.top = self.screen_rect.top + 35
def show_lost(self, screen):
"""показ надписи"""
self.screen.blit(self.lost_image, self.lost_rect)
self.screen.blit(self.lost_image1, self.lost_rect1)
self.screen.blit(self.lost_image2, self.lost_rect2)
pygame.display.flip()
def menu(self):
"""вывод меню игрока"""
self.lost_image1 = self.font.render("CONTINUE", True, self.color)
self.lost_image2 = self.font1.render("EXIT", True, self.color)
self.lost_rect1 = self.lost_image1.get_rect()
self.lost_rect1.center = self.screen_rect.center
self.lost_rect2 = self.lost_image2.get_rect()
self.lost_rect2.midbottom = self.screen_rect.midbottom
self.menter = False
def update_menu(self):
"""Обновление позиции меню"""
if self.mup == True:
self.lost_image1 = self.font.render("CONTINUE", True, self.color)
self.lost_image2 = self.font1.render("EXIT", True, self.color)
self.lost_rect1 = self.lost_image1.get_rect()
self.lost_rect1.center = self.screen_rect.center
self.lost_rect2 = self.lost_image2.get_rect()
self.lost_rect2.midbottom = self.screen_rect.midbottom
elif self.menter == True and self.font.render("CONTINUE", True, self.color):
stats.guns_left = 2
elif self.mdown == True:
self.lost_image1 = self.font1.render("CONTINUE", True, self.color)
self.lost_image2 = self.font.render("EXIT", True, self.color)
self.lost_rect1 = self.lost_image1.get_rect()
self.lost_rect1.center = self.screen_rect.center
self.lost_rect2 = self.lost_image2.get_rect()
self.lost_rect2.midbottom = self.screen_rect.midbottom
elif self.menter == True and self.font.render("EXIT", True, self.color):
pygame.quit()
Я пока только учусь, так что рад услышать советы, если Вам покажется, что какой-то способ можно было бы заменить на более эффективный и где-то была бы документация по этому способу:)
А то вдруг есть простая команда select, где прописываешь список пунктов.