for x in range(80):
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 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))
+ w = max(line1.get_width(), line2.get_width())
+ h = line1.get_height() + line2.get_height()
+ dx = 10
+ dy = 5
+ pygame.draw.rect(self.screen, (255,255,255), ((self.sx - w) // 2 - dx, (self.sy - h) // 2 - dy, w + 2 * dx, h + 2 * dy))
+ pygame.draw.rect(self.screen, (0,0,0), ((self.sx - w) // 2 - dx, (self.sy - h) // 2 - dy, w + 2 * dx, h + 2 * dy), 3)
+ 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()
+
+ 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()
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
- if self.playery - self.cameray > self.sy * 7 // 6:
- 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()
self.drawGrid()
self.drawPlatforms()
self.updatePlayer()
self.updatePlatforms()
self.screen.blit(self.font.render(str(self.score), -1, (0, 0, 0)), (self.sx // 32, self.sy // 24))
+ if self.playery - self.cameray > self.sy * 7 // 6:
+ self.showScore()
+ self.reset()
pygame.display.flip()