BlackFenix06
Profilo di
Nome | BlackFenix06 |
---|---|
Indirizzo email | n/a |
Messaggi | 1 |
-
- 2016-12-30 09:28:35
- 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?