From: lbcmk <30442978+lbcmk@users.noreply.github.com> Date: Wed, 6 Jul 2022 21:58:34 +0000 (-0400) Subject: Made a Main Menu X-Git-Url: http://git.skullheadx.com/nixos/static/projects/suckless.html?a=commitdiff_plain;h=f991d6ba815242c4267f45244be0ee453b0c1580;p=Pygame-Jam.git Made a Main Menu --- diff --git a/Function/createText.py b/Function/createText.py new file mode 100644 index 0000000..8e08e3d --- /dev/null +++ b/Function/createText.py @@ -0,0 +1,14 @@ +from pygame import font + +def createText(X, Y, size, textColour, weight, textInfo, alignment = "l"): + fontx = font.Font(f"./Font/Lato-{weight}.ttf", size) + text = fontx.render(textInfo, True, textColour) + textRect = text.get_rect() + if(alignment == "left" or alignment == "l"): + textRect = (X // 2, Y // 2) # Left aligned text + elif(alignment == "center" or alignment == "c"): + textRect.center = (X//2, Y//2) # Centered text + elif(alignment == "right" or alignment == "r"): + textRect.right = (X//2, Y//2) # Right aligned text + + return text, textRect; \ No newline at end of file diff --git a/MainMenu.py b/MainMenu.py new file mode 100644 index 0000000..21f00cc --- /dev/null +++ b/MainMenu.py @@ -0,0 +1,44 @@ +from Setup import * +from CommonImports.colours import black +from Function.createText import createText + +class Menu: + + def __init__(self): + self.texts = [] + X = 250 + self.texts.append(createText(X, 100, 32, black, "Bold", "Interstellar Pirate Title",)) + self.texts.append(createText(X, 250, 24, black, "Regular", "Start")) + self.texts.append(createText(X, 350, 24, black, "Regular", "Options")) + self.texts.append(createText(X, 450, 24, black, "Regular", "Quit")) + + self.level = 0 + + + def update(self, delta): + for ev in pg.event.get(): + if ev.type == pg.MOUSEBUTTONDOWN: + mouseX, mouseY = pg.mouse.get_pos() + for i in range(len(self.texts)): + x1 = self.texts[i][1][0] + y1 = self.texts[i][1][1] + x2 = x1 + self.texts[i][0].get_rect()[2] + y2 = y1 + self.texts[i][0].get_rect()[3] + + if (x1 <= mouseX <= x2 and y1 <= mouseY <= y2): + self.menuFunctions(i) + return; + + def draw(self, surf): + screen.fill((255, 255, 255)) + for i in self.texts: + screen.blit(i[0], i[1]) + + def menuFunctions(self, num): + match num: + case 1: + self.level = self.level + 1 + case 2: + print("Options") + case 3: + pg.quit(); \ No newline at end of file diff --git a/main.py b/main.py index f60e526..ec0dd0c 100644 --- a/main.py +++ b/main.py @@ -1,18 +1,33 @@ from Setup import * from Game import Game - -scene = Game() +from Menu import Menu delta = 1000//fps is_running = True + +level = 0 +old_level = level +scene = Menu() + while is_running: if pg.event.peek(pg.QUIT): is_running = False + if(level == 0): + level = scene.level + + if(old_level != level): + old_level = level + match level: + case 0: + scene = Menu() + case 1: + scene = Game() + scene.update(delta) scene.draw(screen) pg.display.update() delta = clock.tick(fps) -pg.quit() +pg.quit() \ No newline at end of file