From: Peter Gerwinski Date: Thu, 29 Mar 2018 12:47:05 +0000 (+0200) Subject: Beanies. X-Git-Url: http://bicyclesonthemoon.info/git-projects/?a=commitdiff_plain;h=927f2ff2842b7aa1c883deb64f789a577e981a9b;p=ott%2Fmolpy-up Beanies. --- diff --git a/assets/beanie.png b/assets/beanie.png new file mode 100644 index 0000000..1945c63 Binary files /dev/null and b/assets/beanie.png differ diff --git a/assets/molpy.xcf.gz b/assets/molpy.xcf.gz index 581baa2..a5af860 100644 Binary files a/assets/molpy.xcf.gz and b/assets/molpy.xcf.gz differ diff --git a/assets/playerLeftDownBeanie.png b/assets/playerLeftDownBeanie.png new file mode 100644 index 0000000..c178625 Binary files /dev/null and b/assets/playerLeftDownBeanie.png differ diff --git a/assets/playerLeftUpBeanie.png b/assets/playerLeftUpBeanie.png new file mode 100644 index 0000000..4403921 Binary files /dev/null and b/assets/playerLeftUpBeanie.png differ diff --git a/assets/playerRightDownBeanie.png b/assets/playerRightDownBeanie.png new file mode 100644 index 0000000..1cf31c5 Binary files /dev/null and b/assets/playerRightDownBeanie.png differ diff --git a/assets/playerRightUpBeanie.png b/assets/playerRightUpBeanie.png new file mode 100644 index 0000000..06c4545 Binary files /dev/null and b/assets/playerRightUpBeanie.png differ diff --git a/molpyup.py b/molpyup.py index f558d2e..04482c5 100644 --- a/molpyup.py +++ b/molpyup.py @@ -46,9 +46,12 @@ class MolpyUp: self.screen = pygame.display.set_mode((self.sx, self.sy)) pygame.font.init() self.font = pygame.font.SysFont("xkcd,sans", 25) + self.xmovementmax = 10 self.platformTypeNormal = 0 self.platformTypeFloating = 1 self.platformTypeBreaking = 2 + self.itemTypeAccelerator = 0 + self.itemTypeBeanie = 1 self.imgPlatformNormal = pygame.image.load("assets/platformNormal.png").convert_alpha() self.imgPlatformFloating = pygame.image.load("assets/platformFloating.png").convert_alpha() self.imgPlatformBreaking = pygame.image.load("assets/platformBreaking.png").convert_alpha() @@ -57,9 +60,28 @@ class MolpyUp: self.imgPlayerRightDown = pygame.image.load("assets/playerRightDown.png").convert_alpha() self.imgPlayerLeftUp = pygame.image.load("assets/playerLeftUp.png").convert_alpha() self.imgPlayerLeftDown = pygame.image.load("assets/playerLeftDown.png").convert_alpha() + self.imgPlayerRightUpBeanie = pygame.image.load("assets/playerRightUpBeanie.png").convert_alpha() + self.imgPlayerRightDownBeanie = pygame.image.load("assets/playerRightDownBeanie.png").convert_alpha() + self.imgPlayerLeftUpBeanie = pygame.image.load("assets/playerLeftUpBeanie.png").convert_alpha() + self.imgPlayerLeftDownBeanie = pygame.image.load("assets/playerLeftDownBeanie.png").convert_alpha() self.imgAccelerator = pygame.image.load("assets/accelerator.png").convert_alpha() self.imgAcceleratorUsed = pygame.image.load("assets/acceleratorUsed.png").convert_alpha() + self.imgBeanie = pygame.image.load("assets/beanie.png").convert_alpha() + def reset(self): + self.cameray = 0 + self.score = 0 + self.items = [] + self.playerx = self.sx // 2 + self.playery = self.sy * 3 // 4 + self.direction = 0 + self.jump = 0 + self.gravity = 0 + self.xmovement = 0 + self.playerWearsBeanie = False + self.platforms = [[self.playerx, self.playery + self.sy // 6, self.platformTypeNormal, False]] + self.generatePlatforms() + def updatePlayer(self): if not self.jump: self.playery += self.gravity @@ -91,14 +113,26 @@ class MolpyUp: self.cameray -= self.sy // 60 if not self.direction: if self.jump: - self.screen.blit(self.imgPlayerRightDown, (self.playerx, self.playery - self.cameray)) + if self.playerWearsBeanie: + self.screen.blit(self.imgPlayerRightDownBeanie, (self.playerx, self.playery - self.cameray)) + else: + self.screen.blit(self.imgPlayerRightDown, (self.playerx, self.playery - self.cameray)) else: - self.screen.blit(self.imgPlayerRightUp, (self.playerx, self.playery - self.cameray)) + 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)) else: if self.jump: - self.screen.blit(self.imgPlayerLeftDown, (self.playerx, self.playery - self.cameray)) + 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)) else: - self.screen.blit(self.imgPlayerLeftUp, (self.playerx, self.playery - self.cameray)) + 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)) def updatePlatforms(self): for p in self.platforms: @@ -131,12 +165,18 @@ class MolpyUp: platformType = 1 else: platformType = 2 - - self.platforms.append([random.randint(0, self.sx * 7 // 8), self.platforms[-1][1] - self.sy // 12, platformType, 0]) - coords = self.platforms[-1] + self.platforms.append([random.randint(0, self.sx * 7 // 8), self.platforms[-1][1] - self.sy // 12, platformType, False]) check = random.randint(0, 1000) if check > 900 and platformType == 0: - self.accelerators.append([coords[0], coords[1] - self.imgPlatformNormal.get_height(), 0]) + x = self.platforms[-1][0] + y = self.platforms[-1][1] + itemType = random.randint(0,1000) + if itemType < 900: + itemType = self.itemTypeAccelerator + self.items.append([x, y + 10, itemType, False]) + else: + itemType = self.itemTypeBeanie + self.items.append([x + self.imgPlatformNormal.get_width() * 3 // 4, y + 6, itemType, False]) self.platforms.pop(0) self.score += 1 if p[2] == self.platformTypeNormal: @@ -148,16 +188,28 @@ class MolpyUp: self.screen.blit(self.imgPlatformBreaking, (p[0], p[1] - self.cameray)) else: self.screen.blit(self.imgPlatformBroken, (p[0], p[1] - self.cameray)) - - for accelerator in self.accelerators: - if accelerator[-1]: - self.screen.blit(self.imgAcceleratorUsed, (accelerator[0], accelerator[1] - self.cameray)) - else: - self.screen.blit(self.imgAccelerator, (accelerator[0], accelerator[1] - self.cameray)) - if pygame.Rect(accelerator[0], accelerator[1], self.imgAccelerator.get_width(), self.imgAccelerator.get_height()).colliderect(pygame.Rect(self.playerx, self.playery, self.imgPlayerRightUp.get_width(), self.imgPlayerRightUp.get_height())): - self.jump = self.sy // 12 - self.cameray -= self.sy // 12 - accelerator[-1] = True + for item in self.items: + if item[2] == self.itemTypeAccelerator: + if item[-1]: + imgItem = self.imgAcceleratorUsed + else: + imgItem = self.imgAccelerator + elif item[2] == self.itemTypeBeanie: + if not item[-1]: + imgItem = self.imgBeanie + else: + imgItem = None + if imgItem: + self.screen.blit(imgItem, (item[0], item[1] - imgItem.get_height() - self.cameray)) + if not item[-1]: + if pygame.Rect(item[0], item[1] - imgItem.get_height(), imgItem.get_width(), imgItem.get_height()).colliderect(pygame.Rect(self.playerx, self.playery, self.imgPlayerRightUp.get_width(), self.imgPlayerRightUp.get_height())): + if item[2] == self.itemTypeAccelerator: + self.jump = self.sy // 12 + self.cameray -= self.sy // 12 + item[-1] = True + elif item[2] == self.itemTypeBeanie: + self.playerWearsBeanie = True + item[-1] = True def generatePlatforms(self): on = self.sy @@ -178,20 +230,6 @@ 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 reset(self): - self.cameray = 0 - self.score = 0 - self.accelerators = [] - self.playerx = self.sx // 2 - self.playery = self.sy * 3 // 4 - self.direction = 0 - self.jump = 0 - self.gravity = 0 - self.xmovement = 0 - self.xmovementmax = 10 - self.platforms = [[self.playerx, self.playery + self.sy // 6, self.platformTypeNormal, 0]] - self.generatePlatforms() - 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))