def __init__(self):
self.sx = 553
self.sy = 395
+ self.extrax = self.sx // 16
self.screen = pygame.display.set_mode((self.sx, self.sy))
- self.platformNormal = pygame.image.load("assets/platformNormal.png").convert_alpha()
pygame.font.init()
- self.score = 0
self.font = pygame.font.SysFont("xkcd,sans", 25)
- self.platformFloating = pygame.image.load("assets/platformFloating.png").convert_alpha()
- self.platformBreaking = pygame.image.load("assets/platformBreaking.png").convert_alpha()
- self.platformBroken = pygame.image.load("assets/platformBroken.png").convert_alpha()
- self.playerRightUp = pygame.image.load("assets/playerRightUp.png").convert_alpha()
- self.playerRightDown = pygame.image.load("assets/playerRightDown.png").convert_alpha()
- self.playerLeftUp = pygame.image.load("assets/playerLeftUp.png").convert_alpha()
- self.playerLeftDown = pygame.image.load("assets/playerLeftDown.png").convert_alpha()
- self.accelerator = pygame.image.load("assets/accelerator.png").convert_alpha()
- self.acceleratorUsed = pygame.image.load("assets/acceleratorUsed.png").convert_alpha()
- self.direction = 0
- self.playerx = self.sx // 2
- self.playery = self.sy * 3 // 4
- self.platforms = [[self.playerx, self.playery + self.sy // 6, 0, 0]]
- self.accelerators = []
- self.cameray = 0
- self.jump = 0
- self.gravity = 0
- self.xmovement = 0
- self.xmovementmax = 10
- self.extrax = self.sx // 16
+ self.platformTypeNormal = 0
+ self.platformTypeFloating = 1
+ self.platformTypeBreaking = 2
+ 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()
+ self.imgPlatformBroken = pygame.image.load("assets/platformBroken.png").convert_alpha()
+ self.imgPlayerRightUp = pygame.image.load("assets/playerRightUp.png").convert_alpha()
+ 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.imgAccelerator = pygame.image.load("assets/accelerator.png").convert_alpha()
+ self.imgAcceleratorUsed = pygame.image.load("assets/acceleratorUsed.png").convert_alpha()
def updatePlayer(self):
if not self.jump:
self.cameray -= self.sy // 60
if not self.direction:
if self.jump:
- self.screen.blit(self.playerRightDown, (self.playerx, self.playery - self.cameray))
+ self.screen.blit(self.imgPlayerRightDown, (self.playerx, self.playery - self.cameray))
else:
- self.screen.blit(self.playerRightUp, (self.playerx, self.playery - self.cameray))
+ self.screen.blit(self.imgPlayerRightUp, (self.playerx, self.playery - self.cameray))
else:
if self.jump:
- self.screen.blit(self.playerLeftDown, (self.playerx, self.playery - self.cameray))
+ self.screen.blit(self.imgPlayerLeftDown, (self.playerx, self.playery - self.cameray))
else:
- self.screen.blit(self.playerLeftUp, (self.playerx, self.playery - self.cameray))
+ self.screen.blit(self.imgPlayerLeftUp, (self.playerx, self.playery - self.cameray))
def updatePlatforms(self):
for p in self.platforms:
- rect = pygame.Rect(p[0], p[1], self.platformNormal.get_width() - 10, self.platformNormal.get_height())
- player = pygame.Rect(self.playerx, self.playery, self.playerRightUp.get_width() - 10, self.playerRightUp.get_height())
+ rect = pygame.Rect(p[0], p[1], self.imgPlatformNormal.get_width() - 10, self.imgPlatformNormal.get_height())
+ player = pygame.Rect(self.playerx, self.playery, self.imgPlayerRightUp.get_width() - 10, self.imgPlayerRightUp.get_height())
if rect.colliderect(player) and self.gravity and self.playery < (p[1] - self.cameray):
if p[2] != 2:
self.jump = self.sy // 20
for p in self.platforms:
check = self.platforms[1][1] - self.cameray
if check > self.sy:
- platform = random.randint(0, 1000)
- if platform < 800:
- platform = 0
- elif platform < 900:
- platform = 1
+ platformType = random.randint(0, 1000)
+ if platformType < 800:
+ platformType = 0
+ elif platformType < 900:
+ platformType = 1
else:
- platform = 2
+ platformType = 2
- self.platforms.append([random.randint(0, self.sx * 7 // 8), self.platforms[-1][1] - self.sy // 12, platform, 0])
+ self.platforms.append([random.randint(0, self.sx * 7 // 8), self.platforms[-1][1] - self.sy // 12, platformType, 0])
coords = self.platforms[-1]
check = random.randint(0, 1000)
- if check > 900 and platform == 0:
- self.accelerators.append([coords[0], coords[1] - self.platformNormal.get_height(), 0])
+ if check > 900 and platformType == 0:
+ self.accelerators.append([coords[0], coords[1] - self.imgPlatformNormal.get_height(), 0])
self.platforms.pop(0)
self.score += 1
- if p[2] == 0:
- self.screen.blit(self.platformNormal, (p[0], p[1] - self.cameray))
- elif p[2] == 1:
- self.screen.blit(self.platformFloating, (p[0], p[1] - self.cameray))
- elif p[2] == 2:
+ if p[2] == self.platformTypeNormal:
+ self.screen.blit(self.imgPlatformNormal, (p[0], p[1] - self.cameray))
+ elif p[2] == self.platformTypeFloating:
+ self.screen.blit(self.imgPlatformFloating, (p[0], p[1] - self.cameray))
+ elif p[2] == self.platformTypeBreaking:
if not p[3]:
- self.screen.blit(self.platformBreaking, (p[0], p[1] - self.cameray))
+ self.screen.blit(self.imgPlatformBreaking, (p[0], p[1] - self.cameray))
else:
- self.screen.blit(self.platformBroken, (p[0], p[1] - self.cameray))
+ self.screen.blit(self.imgPlatformBroken, (p[0], p[1] - self.cameray))
for accelerator in self.accelerators:
if accelerator[-1]:
- self.screen.blit(self.acceleratorUsed, (accelerator[0], accelerator[1] - self.cameray))
+ self.screen.blit(self.imgAcceleratorUsed, (accelerator[0], accelerator[1] - self.cameray))
else:
- self.screen.blit(self.accelerator, (accelerator[0], accelerator[1] - self.cameray))
- if pygame.Rect(accelerator[0], accelerator[1], self.accelerator.get_width(), self.accelerator.get_height()).colliderect(pygame.Rect(self.playerx, self.playery, self.playerRightUp.get_width(), self.playerRightUp.get_height())):
+ 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
on = self.sy
while on > -self.sy // 6:
x = random.randint(0,self.sx * 8 // 7)
- platform = random.randint(0, 1000)
- if platform < 800:
- platform = 0
- elif platform < 900:
- platform = 1
+ platformType = random.randint(0, 1000)
+ if platformType < 800:
+ platformType = self.platformTypeNormal
+ elif platformType < 900:
+ platformType = self.platformTypeFloating
else:
- platform = 2
- self.platforms.append([x, on, platform, 0])
+ platformType = self.platformTypeBreaking
+ self.platforms.append([x, on, platformType, 0])
on -= self.sy // 12
def drawGrid(self):
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))
elif key[K_ESCAPE]:
sys.exit()
- def reset(self):
- self.cameray = 0
- self.score = 0
- self.accelerators = []
- self.playerx = self.sx // 2
- self.playery = self.sy * 3 // 4
- self.platforms = [[self.playerx, self.playery + self.sy // 6, 0, 0]]
- self.generatePlatforms()
-
def run(self):
clock = pygame.time.Clock()
- self.generatePlatforms()
+ self.reset()
while True:
self.screen.fill((255,255,255))
clock.tick(60)
self.reset()
pygame.display.flip()
-
MolpyUp().run()