]> bicyclesonthemoon.info Git - ott/molpy-up/commitdiff
improved flag optics, introduced pausing, updated README
authorPeter Gerwinski <peter.gerwinski@hs-bochum.de>
Fri, 30 Mar 2018 11:32:16 +0000 (13:32 +0200)
committerPeter Gerwinski <peter.gerwinski@hs-bochum.de>
Fri, 30 Mar 2018 11:32:16 +0000 (13:32 +0200)
README
assets/flagLeftDown.png [new file with mode: 0644]
assets/flagRightDown.png [new file with mode: 0644]
molpyup.py

diff --git a/README b/README
index 520ab65ddccc58d1749e19b216c29d4416c9961c..47ebb69dbdc25a68b3706a428565b5f86e411fd0 100644 (file)
--- a/README
+++ b/README
@@ -27,7 +27,7 @@ and the pygame library.
    See <http://forums.xkcd.com/viewtopic.php?p=4331549#p4331549> for details.
 
 In the game, use the left and right arrow keys to navigate,
-use + and - to speed up / slow down.
+use + and - to speed up / slow down, SPACE to pause, ESC to exit.
 
 Thanks to NoMouse and taixzo for the installation instructions!
 Thanks to everyone who reported mustard and kept me up with the Present!
diff --git a/assets/flagLeftDown.png b/assets/flagLeftDown.png
new file mode 100644 (file)
index 0000000..112a9b0
Binary files /dev/null and b/assets/flagLeftDown.png differ
diff --git a/assets/flagRightDown.png b/assets/flagRightDown.png
new file mode 100644 (file)
index 0000000..2c01dd5
Binary files /dev/null and b/assets/flagRightDown.png differ
index ad6eb58c971006626d3ad745a26fce02460e2945..5b2b40d3e660f1780eaa60461cdbd21e8699d257 100644 (file)
@@ -73,7 +73,9 @@ class MolpyUp:
         self.imgBeanie = pygame.image.load("assets/beanie.png").convert_alpha()
         self.imgSandcastle = pygame.image.load("assets/sandcastle.png").convert_alpha()
         self.imgFlagLeft = pygame.image.load("assets/flagLeft.png").convert_alpha()
+        self.imgFlagLeftDown = pygame.image.load("assets/flagLeftDown.png").convert_alpha()
         self.imgFlagRight = pygame.image.load("assets/flagRight.png").convert_alpha()
+        self.imgFlagRightDown = pygame.image.load("assets/flagRightDown.png").convert_alpha()
     
     def reset(self):
         self.cameray = 0
@@ -132,26 +134,30 @@ class MolpyUp:
                     self.screen.blit(self.imgPlayerRightDownBeanie, (self.playerx, self.playery - self.cameray))
                 else:
                     self.screen.blit(self.imgPlayerRightDown, (self.playerx, self.playery - self.cameray))
+                if self.playerCarriesFlag:
+                    self.screen.blit(self.imgFlagLeft, (self.playerx + 24, self.playery - 10 - self.cameray))
             else:
                 if self.playerWearsBeanie:
                     self.screen.blit(self.imgPlayerRightUpBeanie, (self.playerx, self.playery - self.cameray))
                 else:
                     self.screen.blit(self.imgPlayerRightUp, (self.playerx, self.playery - self.cameray))
-            if self.playerCarriesFlag:
-                self.screen.blit(self.imgFlagLeft, (self.playerx + 25, self.playery - 10 - self.cameray))
+                if self.playerCarriesFlag:
+                    self.screen.blit(self.imgFlagLeftDown, (self.playerx + 22, self.playery - 10 - self.cameray))
         else:
             if self.jump:
                 if self.playerWearsBeanie:
                     self.screen.blit(self.imgPlayerLeftDownBeanie, (self.playerx, self.playery - self.cameray))
                 else:
                     self.screen.blit(self.imgPlayerLeftDown, (self.playerx, self.playery - self.cameray))
+                if self.playerCarriesFlag:
+                    self.screen.blit(self.imgFlagRight, (self.playerx + 13, self.playery - 10 - self.cameray))
             else:
                 if self.playerWearsBeanie:
                     self.screen.blit(self.imgPlayerLeftUpBeanie, (self.playerx, self.playery - self.cameray))
                 else:
                     self.screen.blit(self.imgPlayerLeftUp, (self.playerx, self.playery - self.cameray))
-            if self.playerCarriesFlag:
-                self.screen.blit(self.imgFlagRight, (self.playerx + 10, self.playery - 10 - self.cameray))
+                if self.playerCarriesFlag:
+                    self.screen.blit(self.imgFlagRightDown, (self.playerx + 11, self.playery - 10 - self.cameray))
 
     def updatePlatforms(self):
         for p in self.platforms:
@@ -272,6 +278,18 @@ class MolpyUp:
             pygame.draw.line(self.screen, (222,222,222), (x * 12, 0), (x * 12, self.sy))
             pygame.draw.line(self.screen, (222,222,222), (0, x * 12), (self.sx, x * 12))
 
+    def waitForIt(self, its):
+        run = False
+        while not run:
+            event = pygame.event.poll()
+            if event.type == KEYDOWN:
+                key = pygame.key.get_pressed()
+                if key[K_ESCAPE]:
+                    sys.exit()
+                for it in its:
+                    if key[it]:
+                        return it
+
     def showScore(self):
         line1 = self.font.render("Press ENTER to restart,", -1, (0, 0, 0))
         line2 = self.font.render("ESC to quit.", -1, (0, 0, 0))
@@ -284,14 +302,7 @@ class MolpyUp:
         self.screen.blit(line1, ((self.sx - line1.get_width()) // 2, self.sy // 2 - line1.get_height()))
         self.screen.blit(line2, ((self.sx - line2.get_width()) // 2, self.sy // 2))
         pygame.display.flip() 
-        waitForIt = True
-        while waitForIt:
-            pygame.event.get()
-            key = pygame.key.get_pressed()
-            if key[K_RETURN]:
-                waitForIt = False
-            elif key[K_ESCAPE]:
-                sys.exit()
+        self.waitForIt([K_RETURN])
 
     def run(self):
         clock = pygame.time.Clock()
@@ -302,6 +313,12 @@ class MolpyUp:
             for event in pygame.event.get():
                 if event.type == QUIT:
                     sys.exit()
+                elif event.type == KEYDOWN:
+                    key = pygame.key.get_pressed()
+                    if key[K_ESCAPE]:
+                        sys.exit()
+                    elif key[K_SPACE]:
+                        self.waitForIt([K_SPACE])
             self.drawGrid()
             self.drawPlatforms()
             self.updatePlayer()