]> Skullheadx's Git Forge - Pygame-Jam.git/commitdiff
Made a Main Menu
authorlbcmk <30442978+lbcmk@users.noreply.github.com>
Wed, 6 Jul 2022 21:58:34 +0000 (17:58 -0400)
committerlbcmk <30442978+lbcmk@users.noreply.github.com>
Wed, 6 Jul 2022 21:58:34 +0000 (17:58 -0400)
Function/createText.py [new file with mode: 0644]
MainMenu.py [new file with mode: 0644]
main.py

diff --git a/Function/createText.py b/Function/createText.py
new file mode 100644 (file)
index 0000000..8e08e3d
--- /dev/null
@@ -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 (file)
index 0000000..21f00cc
--- /dev/null
@@ -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 f60e52699841109c8646b67e33085bce9b94b903..ec0dd0cc01f59928d99f2231ed090c26e997acea 100644 (file)
--- 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