From 72bccfaae405e6770dbc50fce413225289f22295 Mon Sep 17 00:00:00 2001 From: Peter Gerwinski Date: Fri, 30 Mar 2018 13:32:16 +0200 Subject: [PATCH] improved flag optics, introduced pausing, updated README --- README | 2 +- assets/flagLeftDown.png | Bin 0 -> 1052 bytes assets/flagRightDown.png | Bin 0 -> 1049 bytes molpyup.py | 41 +++++++++++++++++++++++++++------------ 4 files changed, 30 insertions(+), 13 deletions(-) create mode 100644 assets/flagLeftDown.png create mode 100644 assets/flagRightDown.png 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 0000000000000000000000000000000000000000..112a9b0d91cf8359060e59ce2486d517e9aa922d GIT binary patch literal 1052 zcmV+%1mpXOP)P*hUn9^@Dq5gDbxex8Aiftdje5|fJy90LM;KxTd zhXgqT*)0qVOgts26(GF~&iMtEMVaXtB?^X?mX->RDfvmM3c;1dC8@c^3Z8k%`9%f! zMTsS;DL}PQJ3xTfCBH<$Jux#+!N@?BM0XPepm2n+5aELmLxAMcqA~~ztVn=Cfx&>m zfgyk)k)fVp0mD&-H;m$pE{vs&D;V!Fi7^E+O<=mfEX*9qypZ_~izQ13%Pm$t)>hVg zY?f@(*uJrcv+w3m;^^Y|!kNfFNw(Qwf(Vw1#;#IHzHNXkhblggKtmOddeXk zJ*BtGYgGzVO;mrX9aQhq2-Q^5{GfF}dy-D7u9cpk-Yfkh1`7;pjbe;#P2^3PO<$T_ zFyCph#BzdFopr8FoNb_;tG%^@v7?TYnzNFNf~&lng1fSZx~Hy}iMNf9yKk^xf`5KM zec;5PrNO&GE{47gXNr)Ew2F#|u85f#yC?2J0$ZYPQdn|B%9_-h=^PmrnVDI0voGed z=h^316l^MdSFBxb7qP0ll{*!Ux>Us_&Wcs{JRSunm(C+e)V<1_wb(rzfS#W z{pa}qKL8B?4>W(M#f<;}00Lr5M??VshmXv^00009a7bBm006Nn006Nn0b!>s?*IS* z2XskIMF-*o9tr^+7qpTa0002HNkl-lAXFER*oPVx7J$(&#WeO&uXfHW* z;=@2S#T|3Uge7b^(3P3}L2lcnkuOo3AXj&!<5W$K2rXBhjs1wCs71wvGn>A>xba%t z1&3}udNOqH+;#C}SIydQ+rCdtf`?LP-MT52Bz`9IzKU-}Qi@yVtYTK|DKh;JC$In# WNGi3UyA=ii0000P*hUn9^@Dq5gDbxex8Aiftdje5|fJy90LM;KxTd zhXgqT*)0qVOgts26(GF~&iMtEMVaXtB?^X?mX->RDfvmM3c;1dC8@c^3Z8k%`9%f! zMTsS;DL}PQJ3xTfCBH<$Jux#+!N@?BM0XPepm2n+5aELmLxAMcqA~~ztVn=Cfx&>m zfgyk)k)fVp0mD&-H;m$pE{vs&D;V!Fi7^E+O<=mfEX*9qypZ_~izQ13%Pm$t)>hVg zY?f@(*uJrcv+w3m;^^Y|!kNfFNw(Qwf(Vw1#;#IHzHNXkhblggKtmOddeXk zJ*BtGYgGzVO;mrX9aQhq2-Q^5{GfF}dy-D7u9cpk-Yfkh1`7;pjbe;#P2^3PO<$T_ zFyCph#BzdFopr8FoNb_;tG%^@v7?TYnzNFNf~&lng1fSZx~Hy}iMNf9yKk^xf`5KM zec;5PrNO&GE{47gXNr)Ew2F#|u85f#yC?2J0$ZYPQdn|B%9_-h=^PmrnVDI0voGed z=h^316l^MdSFBxb7qP0ll{*!Ux>Us_&Wcs{JRSunm(C+e)V<1_wb(rzfS#W z{pa}qKL8B?4>W(M#f<;}00Lr5M??VshmXv^00009a7bBm006Nn006Nn0b!>s?*IS* z2XskIMF-*o9tr^{K?hbi0002ENklD# z*Igl^MMQV$5PFvuE;@rCp$tm-r~J7Xqfy`G^Sz6gFTs;XRqt}C3xbJ49uIVV>DWoz z%2^%~R6K~x4E_8cE(LQRo}Ehmnq@B%$L>_c#%53x1i`P=z?)h&B>2>Kqv*)JG{d=9 zJxvW4uC(CXx7*F;qLS+ZrVgEeB^J^cW06IEe2jq6F0xYI$5^zF)9nvsIN8QE5HTzL Tj_yMw00000NkvXXu0mjfZw>UD literal 0 HcmV?d00001 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() -- 2.30.2