Python Animowane Menu

0

Cześć. Piszę w Pythonie grę, wykorzystując do tego bibliotekę Pygame. Robiąc Menu natrafiłem na problem. Mianowicie chce, aby za każdym kliknięciem klawisza w dół podświetlało mi aktualną pozycje w menu. Może ktoś podrzucić jakiś pomysł jak to zrobić w moim kodzie?

import pygame
from pygame.locals import *
from sys import exit

screen_size = (640, 480)

class Game(object):
    def __init__(self):
        pygame.init()
        flag = DOUBLEBUF
        self.surface = pygame.display.set_mode(screen_size, flag)
        self.surface.fill((0, 0, 0)) #background
        img = pygame.image.load("tank.jpg").convert()
        self.surface.blit(img, (0, 0))
        self.myfont = pygame.font.Font("Szarpany.ttf", 100)
        self.newGame = self.myfont.render("New Game", 1, (0, 0, 0))
        self.surface.blit(self.newGame, (180, 70))
        self.opt = self.myfont.render("Options", 1, (0, 0, 0))
        self.surface.blit(self.opt, (180, 140))
        self.cr = self.myfont.render("Credits", 1, (0, 0, 0))
        self.surface.blit(self.cr, (180, 210))
        self.qt = self.myfont.render("Quit", 1, (0, 0, 0))
        self.surface.blit(self.qt, (180, 280))
        self.gamestate = 1
        self.menu = [self.newGame, self.opt, self.cr, self.qt]
        self.loop()

    def game_exit(self):
        exit()

    def loop(self):
        while True:
            i = 0
            on = (255, 255, 255)
            off = (0, 0, 0)
            for event in pygame.event.get():
                if event.type == KEYDOWN and event.key == K_RETURN:
                    self.gamestate = 1
                    self.loop()
                if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
                    exit()
            pygame.display.flip()

if __name__ == '__main__':
    Game()


0

Dodaj tutaj odpowiednią warstwę abstrakcji robiąc z tego nawet najprostsze kontroli, a całość stanie się dziecinnie prosta.

1 użytkowników online, w tym zalogowanych: 0, gości: 1