Profilo di BlackFenix06

Nome BlackFenix06
Indirizzo email n/a
Messaggi1
  • Menu Videogame
    Forum >> Programmazione Python >> Videogames
    Salve, premettendo che spero sia la sezione giusta per porre la domanda, mi chiedevo se potreste darmi una mano con un problema che mi si è parato davanti.
    Sto creando un menu per un Videogame, in Python 3.5 con Pygame.




    import pygame, sys, os

    DisplayWidth, DisplayHeight = 960, 960
    SurfaceWidth, SurfaceHeight = 960, 960

    BookLoop = True
    StatusMenu = True
    StatusTextFontColor = "White"
    TextMenuList = ["Scelta Capitoli", "Crediti", "Esci"]

    Clock = pygame.time.Clock()

    def init():
    global Display, Surface
    pygame.init()
    infoDisplay = pygame.display.Info()
    X = ((infoDisplay.current_w / 2) - 480)
    Y = ((infoDisplay.current_h / 2) - 480)
    os.environ['SDL_VIDEO_WINDOW_POS'] = "%d,%d" % (X, Y)
    Display = pygame.display.set_mode((DisplayWidth, DisplayHeight), pygame.DOUBLEBUF | pygame.HWSURFACE)
    Surface = pygame.Surface((SurfaceWidth, SurfaceHeight))

    def quit():
    pygame.quit()
    sys.exit()

    def infoMenu():
    global MousePosX, MousePosY
    MousePosX, MousePosY = pygame.mouse.get_pos()


    def menuText(txt, dist):
    global StatusTextFontColor, TextMenuX, TextMenuY, TextMenuWidth, TextMenuHeight
    TextMenuFont = pygame.font.Font("font/njnaruto.ttf", 50)

    if StatusTextFontColor == "Red":
    TextFontColor = (255, 0, 0)
    else:
    TextFontColor = (255, 255, 255)

    TextMenuSurf = TextMenuFont.render(str(txt), True, TextFontColor)

    TextMenuWidth = TextMenuSurf.get_width()
    TextMenuHeight = TextMenuSurf.get_height()
    TextMenuX = int(DisplayWidth / 2) - int(TextMenuWidth / 2)
    TextMenuY = int(DisplayHeight / 2) + dist

    if TextMenuX < MousePosX < TextMenuX + TextMenuWidth and TextMenuY < MousePosY < TextMenuY + TextMenuHeight:
    StatusTextFontColor = "Red"
    else:
    StatusTextFontColor = "White"

    Display.blit(TextMenuSurf, (TextMenuX, TextMenuY))

    def book():
    global StatusMenu
    while BookLoop is True:
    infoMenu()
    Display.fill((0, 0, 0))
    for event in pygame.event.get():
    if event.type is pygame.QUIT:
    quit()
    if event.type is pygame.KEYDOWN:
    if event.key is pygame.K_ESCAPE:
    if StatusMenu is True:
    quit()
    else:
    StatusMenu = True
    if event.type is pygame.MOUSEBUTTONDOWN:
    if TextMenuX < MousePosX < TextMenuX + TextMenuWidth and TextMenuY < MousePosY < TextMenuY + TextMenuHeight and StatusMenu is True:
    print("pass")

    menuText(TextMenuList[0], -300)
    menuText(TextMenuList[1], 0)
    menuText(TextMenuList[2], +300)
    pygame.display.flip()
    Clock.tick(30)


    init()
    book()


    Il problema è che se il mouse va su una delle opzioni ("Scelta capitoli", "Opzioni" e "Esci"), viene selezionato l'opzione sbagliata. Per intenderci, se con il mouse si va sopra ad esempio su "Scelta capitoli", viene selezionato "Opzioni". Se il mouse va su "Opzioni" viene selezionato "Esci". Se il mouse va su "Esci" viene selezionato "Scelta capitoli". Inoltre, Premendo sull'opzione dove si trova il mouse, non succede nulla, tranne per l'opzione "Esci". Sapete aiutarmi?