forked from elliott005/ninjaSouls
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Menu.py
62 lines (55 loc) · 3.48 KB
/
Menu.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import os
import pygame
from pytmx.util_pygame import load_pygame
from globals import *
from inputs import *
mainMenuMap = load_pygame(os.path.dirname(__file__) + "/maps/MenuBackground.tmx")
class MainMenu:
def __init__(self, windowSize):
self.mainMenuBackground = pygame.Surface(windowSize)
for layer in mainMenuMap.visible_layers:
if hasattr(layer, "data"):
for x, y, surf in layer.tiles():
self.mainMenuBackground.blit(pygame.transform.scale(surf, size), (x * size[0], y * size[1]))
self.buttonImage = pygame.image.load(os.path.dirname(__file__) + "/assets/NinjaAdventure/HUD/Dialog/DialogueBoxSimple.png")
self.buttonImageHovered = pygame.image.load(os.path.dirname(__file__) + "/assets/NinjaAdventure/HUD/Dialog/DialogBox.png")
self.buttons = {
"startGame": {"pos": (0, 0), "size": (1000, 200), "neighborDown": "quitGame", "text": "Start Game!"},
"quitGame": {"pos": (0, 400), "size": (1000, 200), "neighborUp": "startGame", "text": "Quit Game :("}
}
self.moveOnce = False
self.hovered = "startGame"
for button in self.buttons:
self.buttons[button]["sprite"] = pygame.transform.scale(self.buttonImage, self.buttons[button]["size"])
self.buttons[button]["spriteHovered"] = pygame.transform.scale(self.buttonImageHovered, self.buttons[button]["size"])
self.acceptSound = pygame.mixer.Sound(os.path.dirname(__file__) + "/assets/NinjaAdventure/Sounds/Menu/Accept.wav")
self.changeHoveredSound = pygame.mixer.Sound(os.path.dirname(__file__) + "/assets/NinjaAdventure/Sounds/Menu/Menu1.wav")
def update(self, joystick):
keysPressed = pygame.key.get_pressed()
if ((checkInput(keysPressed, "moveUp") and joystick == -1) or (joystick != -1 and checkInputController(joystick, "moveVertical") < 0.0)):
if not self.moveOnce:
self.moveOnce = True
if "neighborUp" in self.buttons[self.hovered]:
self.hovered = self.buttons[self.hovered]["neighborUp"]
self.changeHoveredSound.play()
elif ((checkInput(keysPressed, "moveDown") and joystick == -1) or (joystick != -1 and checkInputController(joystick, "moveVertical") > 0.0)):
if not self.moveOnce:
self.moveOnce = True
if "neighborDown" in self.buttons[self.hovered]:
self.hovered = self.buttons[self.hovered]["neighborDown"]
self.changeHoveredSound.play()
else:
self.moveOnce = False
if ((checkInput(keysPressed, "talk") and joystick == -1) or (joystick != -1 and checkInputController(joystick, "talk"))):
self.acceptSound.play()
return self.hovered
return False
def draw(self, WINDOW):
WINDOW.blit(self.mainMenuBackground, (0, 0))
for button in self.buttons:
if self.hovered == button:
WINDOW.blit(self.buttons[button]["spriteHovered"], self.buttons[button]["pos"])
WINDOW.blit(fontMenu.render(self.buttons[button]["text"], False, (0, 100, 100)), (self.buttons[button]["pos"][0] + 20, self.buttons[button]["pos"][1]))
else:
WINDOW.blit(self.buttons[button]["sprite"], self.buttons[button]["pos"])
WINDOW.blit(fontMenu.render(self.buttons[button]["text"], False, (0, 0, 0)), (self.buttons[button]["pos"][0] + 20, self.buttons[button]["pos"][1]))