Forum >> Programmazione Python >> Videogames >> Menu Videogame

Pagina: 1

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?
COMMENTO ELIMINATO


--- Ultima modifica di Daniele aka Palmux in data 2018-10-13 11:03:41 ---
Ciao a te, non so aiutarti in questo problema specifico, ma so che se cerchi una mano devi predisporre il tuo interlocutore ad avere la voglia e la pazienza di farlo.

Per questo devi presentare il codice in maniera leggibile, perché in Python la sintassi gioca un ruolo importante.

Quindi in fase di inserimento usa il tasto apposito.


Ciao e buona fortuna.



Pagina: 1



Esegui il login per scrivere una risposta.