From: Peter Gerwinski Date: Fri, 30 Mar 2018 11:32:16 +0000 (+0200) Subject: improved flag optics, introduced pausing, updated README X-Git-Url: http://bicyclesonthemoon.info/git-projects/?a=commitdiff_plain;h=72bccfaae405e6770dbc50fce413225289f22295;p=ott%2Fmolpy-up improved flag optics, introduced pausing, updated README --- diff --git a/README b/README index 520ab65..47ebb69 100644 --- a/README +++ b/README @@ -27,7 +27,7 @@ and the pygame library. See 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 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 index 0000000..2c01dd5 Binary files /dev/null and b/assets/flagRightDown.png differ diff --git a/molpyup.py b/molpyup.py index ad6eb58..5b2b40d 100644 --- a/molpyup.py +++ b/molpyup.py @@ -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()