]> bicyclesonthemoon.info Git - ott/molpy-up/commitdiff
Beanies.
authorPeter Gerwinski <peter.gerwinski@hs-bochum.de>
Thu, 29 Mar 2018 12:47:05 +0000 (14:47 +0200)
committerPeter Gerwinski <peter.gerwinski@hs-bochum.de>
Thu, 29 Mar 2018 12:47:05 +0000 (14:47 +0200)
assets/beanie.png [new file with mode: 0644]
assets/molpy.xcf.gz
assets/playerLeftDownBeanie.png [new file with mode: 0644]
assets/playerLeftUpBeanie.png [new file with mode: 0644]
assets/playerRightDownBeanie.png [new file with mode: 0644]
assets/playerRightUpBeanie.png [new file with mode: 0644]
molpyup.py

diff --git a/assets/beanie.png b/assets/beanie.png
new file mode 100644 (file)
index 0000000..1945c63
Binary files /dev/null and b/assets/beanie.png differ
index 581baa2aad1eecc7c514804cefc8bbe7da6fc4b6..a5af860bfd348b7ad2274d445f13df52399b0fd8 100644 (file)
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 (file)
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 (file)
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 (file)
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 (file)
index 0000000..06c4545
Binary files /dev/null and b/assets/playerRightUpBeanie.png differ
index f558d2e2dda2bda315899facc7aeac1c39280548..04482c59e901cdaa723f367b025995b090554e9d 100644 (file)
@@ -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))