Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import pygame
- BLACK = (0, 0, 0)
- WHITE = (255, 255, 255)
- RED = (128, 0, 0)
- GREEN = (0, 128, 0)
- BLUE = (0, 0, 128)
- pygame.init()
- PDR = pygame.Rect(0, 0, 1024, 720)
- PDS = pygame.display.set_mode(PDR.size)
- FPS = 120
- pygame.font.init()
- FONT = pygame.font.SysFont('Ariel', 35)
- class menu:
- class item:
- def __init__(s, text, identifier = None):
- global FONT, WHITE, BLACK, RED
- s.id = identifier
- s.text = text
- if id:
- s.highlighted_surface = FONT.render(text, True, WHITE, RED)
- s.unhighlighted_surface = FONT.render(text, True, WHITE, BLACK)
- s.rect = s.unhighlighted_surface.get_rect()
- def __init__(s):
- s.itemContainer = []
- s.highlightableContainer = []
- s.selected = None
- s.menuHeight = 0
- test = s.item("TEST")
- s.itemHeight = test.rect.h
- del test
- s.keyDown = False
- def addItem(s, text, identifier = None):
- newItem = s.item(text, identifier)
- s.itemContainer.append(newItem)
- if identifier:
- s.highlightableContainer.append(newItem)
- s.menuHeight += s.itemHeight
- def draw(s):
- global PDS, PDR
- y = (PDR.h - s.menuHeight) / 2
- for item in s.itemContainer:
- x = (PDR.w - item.rect.w) / 2
- if item == s.highlightableContainer[0]:
- PDS.blit(item.highlighted_surface, (x, y))
- else:
- PDS.blit(item.unhighlighted_surface, (x, y))
- y += s.itemHeight
- def update(s):
- if not s.highlightableContainer: return
- k = pygame.key.get_pressed()
- if k[pygame.K_UP] and not s.keyDown:
- s.highlightableContainer = [s.highlightableContainer[-1]] + s.highlightableContainer[:-1]
- s.keyDown = True
- elif k[pygame.K_DOWN] and not s.keyDown:
- s.highlightableContainer = s.highlightableContainer[1:] + [s.highlightableContainer[0]]
- s.keyDown = True
- elif not k[pygame.K_UP] and not k[pygame.K_DOWN] and s.keyDown:
- s.keyDown = False
- if k[pygame.K_SPACE] or k[pygame.K_RETURN]:
- s.selected = s.highlightableContainer[0]
- m = menu()
- m.addItem("M E N U")
- m.addItem(" ")
- m.addItem("LET'S DO THIS", "PLAY")
- m.addItem("WIMP OUT!", "EXIT")
- m.addItem(" ")
- m.addItem("OPTIONS", "OPTIONS")
- while True:
- events = pygame.event.get()
- for e in events:
- if e.type == pygame.QUIT: sys.exit()
- PDS.fill(BLACK)
- m.draw()
- m.update()
- if m.selected:
- if m.selected.id == "EXIT": break
- pygame.display.update()
- pygame.time.Clock().tick(FPS)
- pygame.quit()
- sys.exit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement