def run(self): done = False while not done: self.screen.blit(Menu.sky, self.screen.get_rect()) self.water.update() self.water_sprite.draw(self.screen) for i in xrange(len(self.menu)): self.render(i) cloud.update() cloud.draw(self.screen) rect = Menu.logo.get_rect() rect.centerx = self.screen.get_rect().centerx rect.top = 0 self.screen.blit(Menu.logo, rect) image = util.smallfont.render("http://funnyboat.sourceforge.net/", True, (0, 0, 0)) rect = image.get_rect() rect.midbottom = self.screen.get_rect().midbottom self.screen.blit(image, rect) pygame.display.flip() self.t += 1 nextframe = False while not nextframe: pygame.event.post(pygame.event.wait()) for event in pygame.event.get(): if event.type == QUIT or \ event.type == KEYDOWN and event.key == K_ESCAPE: self.selection = -1 done = True nextframe = True elif event.type == NEXTFRAME: nextframe = True elif event.type == JOYAXISMOTION: if event.axis == 1: if event.value < -0.5: self.move_up() if event.value > 0.5: self.move_down() elif event.type == JOYBUTTONDOWN: if event.button == 0: done = True elif event.type == KEYDOWN: if event.key == K_UP: self.move_up() elif event.key == K_DOWN: self.move_down() elif event.key == K_SPACE or event.key == K_RETURN: done = True return self.selection
def run(self): done = False while not done: self.screen.blit(Menu.sky, self.screen.get_rect()) self.water.update() self.water_sprite.draw(self.screen) for i in xrange(len(self.menu)): self.render(i) cloud.update() cloud.draw(self.screen) rect = Menu.logo.get_rect() rect.centerx = self.screen.get_rect().centerx rect.top = 0 self.screen.blit(Menu.logo, rect) image = util.smallfont.render("http://funnyboat.sourceforge.net/", True, (0,0,0)) rect = image.get_rect() rect.midbottom = self.screen.get_rect().midbottom self.screen.blit(image, rect) pygame.display.flip() self.t += 1 nextframe = False while not nextframe: pygame.event.post(pygame.event.wait()) for event in pygame.event.get(): if event.type == QUIT or \ event.type == KEYDOWN and event.key == K_ESCAPE: self.selection = -1 done = True nextframe = True elif event.type == NEXTFRAME: nextframe = True elif event.type == JOYAXISMOTION: if event.axis == 1: if event.value < -0.5: self.move_up() if event.value > 0.5: self.move_down() elif event.type == JOYBUTTONDOWN: if event.button == 0: done = True elif event.type == KEYDOWN: if event.key == K_UP: self.move_up() elif event.key == K_DOWN: self.move_down() elif event.key == K_SPACE or event.key == K_RETURN: done = True return self.selection
def draw(self): self.screen.blit(Game.sky, self.screen.get_rect()) self.health_sprite.draw(self.screen) self.score_sprite.draw(self.screen) self.player_sprite.draw(self.screen) self.powerup_sprites.draw(self.screen) self.pirate_sprites.draw(self.screen) if self.titanic: self.titanic_sprite.draw(self.screen) self.seagull_sprites.draw(self.screen) cloud.draw(self.screen) self.shark_sprites.draw(self.screen) self.mine_sprites.draw(self.screen) self.cannonball_sprites.draw(self.screen) self.water_sprite.draw(self.screen) if Variables.particles: self.particle_sprite.draw(self.screen) if self.pause: self.screen.blit(self.pause_image, self.pause_rect) if self.gameover: self.screen.blit(self.gameover_image, self.gameover_rect) if self.level.t < 120: image = None i = 0 if self.level.phase < len(self.level.phase_messages): for text in self.level.phase_messages[self.level.phase].split( "\n"): image = util.smallfont.render(text, Variables.alpha, (0, 0, 0)) rect = image.get_rect() rect.centerx = self.screen.get_rect().centerx rect.top = 100 + rect.height * i blit_image = pygame.Surface( (image.get_width(), image.get_height())) blit_image.fill((166, 183, 250)) blit_image.set_colorkey((166, 183, 250)) blit_image.blit(image, image.get_rect()) if self.level.t > 60: blit_image.set_alpha(255 - (self.level.t - 60) * 255 / 60) self.screen.blit(blit_image, rect) i += 1 pygame.display.flip()
def draw(self): self.screen.blit(self.sky, self.screen.get_rect()) self.screen.blit(self.pause_icon, (SCREEN_WIDTH - 32, 0)) self.health_sprite.draw(self.screen) self.score_sprite.draw(self.screen) self.player_sprite.draw(self.screen) self.powerup_sprites.draw(self.screen) self.pirate_sprites.draw(self.screen) if self.titanic: self.titanic_sprite.draw(self.screen) self.seagull_sprites.draw(self.screen) cloud.draw(self.screen) self.shark_sprites.draw(self.screen) self.mine_sprites.draw(self.screen) self.cannonball_sprites.draw(self.screen) self.water_sprite.draw(self.screen) if not self.noparticles: self.particle_sprite.draw(self.screen) if self.pause: self.screen.blit(self.pause_image, self.pause_rect) if self.gameover: self.screen.blit(self.gameover_image, self.gameover_rect) if self.level.t < 120: font = util.load_font("Cosmetica", 16) image = None i = 0 if self.level.phase < len(self.level.phase_messages): for text in self.level.phase_messages[self.level.phase].split("\n"): image = font.render(text, True, (0,0,0)) rect = image.get_rect() rect.centerx = self.screen.get_rect().centerx rect.top = 100 + rect.height * i blit_image = pygame.Surface((image.get_width(), image.get_height())) blit_image.fill((166,183,250)) blit_image.set_colorkey((166,183,250)) blit_image.blit(image, image.get_rect()) if self.level.t > 60: blit_image.set_alpha(255 - (self.level.t - 60) * 255 / 60) self.screen.blit(blit_image, rect) i += 1 pygame.display.flip()
def run(self): water = Water.global_water water_sprite = pygame.sprite.Group() water_sprite.add(water) while not self.done: self.screen.blit(self.sky, self.screen.get_rect()) water.update() cloud.update() cloud.draw(self.screen) water_sprite.draw(self.screen) rect = self.title.get_rect() rect.centerx = self.screen.get_rect().centerx rect.top = 10 self.screen.blit(self.title, rect) for i in range(10): color = (0, 0, 0) if self.inputting and self.input_score == i: color = (220, 120, 20) score = self.scores[i] image = self.font.render( str(i + 1) + ". " + score[0], True, color) rect = image.get_rect() rect.top = 50 + i * 1.5 * rect.height rect.left = 10 self.screen.blit(image, rect) image = self.font.render(str(score[1]), True, color) rect = image.get_rect() rect.top = 50 + i * 1.5 * rect.height rect.right = self.screen.get_rect().right - 10 self.screen.blit(image, rect) pygame.display.flip() nextframe = False while not nextframe: pygame.event.post(pygame.event.wait()) for event in pygame.event.get(): if event.type == NEXTFRAME: nextframe = True continue if self.inputting: if event.type == QUIT: self.inputting = False self.write_scores() if event.type == KEYDOWN: if event.key == K_RETURN or event.key == K_ESCAPE: self.inputting = False self.write_scores() elif event.key == K_BACKSPACE: if len(self.scores[self.input_score][0]) != 0: self.scores[ self.input_score][0] = self.scores[ self.input_score][0][:-1] elif event.key == K_SPACE or event.unicode != " ": if len(self.scores[self.input_score][0]) < 32: self.scores[ self.input_score][0] += event.unicode else: if event.type == KEYDOWN or event.type == QUIT or event.type == JOYBUTTONDOWN: self.done = True nextframe = True
def run(self): done = False while not done: self.screen.blit(Options.sky, self.screen.get_rect()) self.water.update() self.water_sprite.draw(self.screen) for i in xrange(len(self.menu)): self.render(i) cloud.update() cloud.draw(self.screen) rect = Options.logo.get_rect() rect.centerx = self.screen.get_rect().centerx rect.top = 0 self.screen.blit(Options.logo, rect) image = util.smallfont.render("http://funnyboat.sourceforge.net/", True, (0, 0, 0)) rect = image.get_rect() rect.midbottom = self.screen.get_rect().midbottom self.screen.blit(image, rect) pygame.display.flip() self.t += 1 nextframe = False while not nextframe: pygame.event.post(pygame.event.wait()) for event in pygame.event.get(): if event.type == QUIT or \ event.type == KEYDOWN and event.key == K_ESCAPE: self.selection = -1 done = True nextframe = True elif event.type == NEXTFRAME: nextframe = True elif event.type == JOYAXISMOTION: if event.axis == 1: if event.value < -0.5: self.move_up() if event.value > 0.5: self.move_down() elif event.axis == 0: if event.value < -0.5: self.change_left() if event.value > 0.5: self.change_right() elif event.type == JOYBUTTONDOWN: if self.gamepad: if self.gamepad.is_pressed('a', event): self.change_right() elif self.gamepad.is_pressed('b', event): done = True elif event.button == 0: #done = True self.change_right() elif event.button == 1: done = True elif event.type == KEYDOWN: if event.key == K_UP: self.move_up() elif event.key == K_DOWN: self.move_down() elif event.key == K_LEFT: self.change_left() elif event.key == K_RIGHT: self.change_right() elif self.selection == Options.NAME: if event.key == K_BACKSPACE: if len(Variables.name) != 0: Variables.name = Variables.name[:-1] elif event.key == K_SPACE or event.unicode != " " and event.unicode >= u' ': if len(Variables.name) < 32: Variables.name += event.unicode self.refresh() elif event.key == K_SPACE or event.key == K_RETURN: #done = True self.change_right() util.save_config() return self.selection
def run(self): done = False while not done: self.screen.blit(self.sky, self.screen.get_rect()) self.water.update() self.water_sprite.draw(self.screen) if not self.gametype_select: self.render("New Game", Menu.NEWGAME) self.render("High Scores", Menu.HIGHSCORES) #self.render("Options", Menu.OPTIONS) self.render("Quit", Menu.QUIT) else: self.render("Story mode", Menu.STORY) self.render("Endless mode", Menu.ENDLESS) cloud.update() cloud.draw(self.screen) rect = self.logo.get_rect() rect.centerx = self.screen.get_rect().centerx rect.top = 0 self.screen.blit(self.logo, rect) image = self.url_font.render("http://funnyboat.sourceforge.net/", True, (0,0,0)) bottom = rect.bottom rect = image.get_rect() rect.midbottom = self.screen.get_rect().midbottom #rect.bottomright = self.screen.get_rect().bottomright #rect.bottom = bottom self.screen.blit(image, rect) pygame.display.flip() self.t += 1 nextframe = False while not nextframe: pygame.event.post(pygame.event.wait()) for event in pygame.event.get(): if event.type == QUIT or \ event.type == KEYDOWN and event.key == K_ESCAPE: self.selection = -1 done = True nextframe = True elif event.type == NEXTFRAME: nextframe = True elif event.type == JOYAXISMOTION: if event.axis == 1: if event.value < -0.5: self.selection -= 1 if not self.gametype_select: if self.selection == Menu.OPTIONS: self.selection = Menu.HIGHSCORES if self.selection < 0: self.selection = 0 if event.value > 0.5: self.selection += 1 if not self.gametype_select: if self.selection == Menu.OPTIONS: self.selection = Menu.QUIT if self.selection > Menu.QUIT: self.selection = Menu.QUIT else: if self.selection > Menu.ENDLESS: self.selection = Menu.ENDLESS elif event.type == JOYBUTTONDOWN: if event.button == 0: done = True elif event.type == KEYDOWN: if event.key == K_UP: self.selection -= 1 if not self.gametype_select: if self.selection == Menu.OPTIONS: self.selection = Menu.HIGHSCORES if self.selection < 0: self.selection = 0 elif event.key == K_DOWN: self.selection += 1 if not self.gametype_select: if self.selection == Menu.OPTIONS: self.selection = Menu.QUIT if self.selection > Menu.QUIT: self.selection = Menu.QUIT else: if self.selection > Menu.ENDLESS: self.selection = Menu.ENDLESS elif event.key == K_SPACE or event.key == K_RETURN: done = True return self.selection
def run(self): water = Water.global_water water.set_amplitude(SCREEN_HEIGHT / 8.0) water_sprite = pygame.sprite.Group() water_sprite.add(water) while not self.done: self.screen.blit(Highscores.sky, self.screen.get_rect()) water.update() cloud.update() cloud.draw(self.screen) water_sprite.draw(self.screen) rect = self.title.get_rect() rect.centerx = self.screen.get_rect().centerx rect.top = 10 self.screen.blit(self.title, rect) for i in xrange(10): color = (0,0,0) #if self.inputting and self.input_score == i: if self.input_score == i: color = (220, 120, 20) score = self.scores[i] image = 0 try: image = util.smallfont.render(str(i + 1) + ". " + score[0], True, color) except: image = util.smallfont.render(str(i + 1) + ". Error", True, color) rect = image.get_rect() rect.top = 50 + i * 1.5 * rect.height rect.left = 10 self.screen.blit(image, rect) image = util.smallfont.render(str(score[1]), True, color) rect = image.get_rect() rect.top = 50 + i * 1.5 * rect.height rect.right = self.screen.get_rect().right - 10 self.screen.blit(image, rect) pygame.display.flip() nextframe = False while not nextframe: pygame.event.post(pygame.event.wait()) for event in pygame.event.get(): if event.type == NEXTFRAME: nextframe = True continue if self.inputting: if event.type == QUIT: self.inputting = False self.write_scores() if event.type == KEYDOWN: if event.key == K_RETURN or event.key == K_ESCAPE: self.inputting = False if self.endless: self.submit_score() self.write_scores() elif event.key == K_BACKSPACE: if len(self.scores[self.input_score][0]) != 0: self.scores[self.input_score][0] = self.scores[self.input_score][0][:-1] elif event.key == K_SPACE or event.unicode != " ": if len(self.scores[self.input_score][0]) < 32: self.scores[self.input_score][0] += event.unicode else: if event.type == KEYDOWN or event.type == QUIT or event.type == JOYBUTTONDOWN: self.done = True nextframe = True
def run(self): done = False while not done: self.screen.blit(Options.sky, self.screen.get_rect()) self.water.update() self.water_sprite.draw(self.screen) for i in xrange(len(self.menu)): self.render(i) cloud.update() cloud.draw(self.screen) rect = Options.logo.get_rect() rect.centerx = self.screen.get_rect().centerx rect.top = 0 self.screen.blit(Options.logo, rect) image = util.smallfont.render("http://funnyboat.sourceforge.net/", True, (0,0,0)) rect = image.get_rect() rect.midbottom = self.screen.get_rect().midbottom self.screen.blit(image, rect) pygame.display.flip() self.t += 1 nextframe = False while not nextframe: pygame.event.post(pygame.event.wait()) for event in pygame.event.get(): if event.type == QUIT or \ event.type == KEYDOWN and event.key == K_ESCAPE: self.selection = -1 done = True nextframe = True elif event.type == NEXTFRAME: nextframe = True elif event.type == JOYAXISMOTION: if event.axis == 1: if event.value < -0.5: self.move_up() if event.value > 0.5: self.move_down() elif event.axis == 0: if event.value < -0.5: self.change_left() if event.value > 0.5: self.change_right() elif event.type == JOYBUTTONDOWN: if event.button == 0: #done = True self.change_right() elif event.button == 1: done = True elif event.type == KEYDOWN: if event.key == K_UP: self.move_up() elif event.key == K_DOWN: self.move_down() elif event.key == K_LEFT: self.change_left() elif event.key == K_RIGHT: self.change_right() elif self.selection == Options.NAME: if event.key == K_BACKSPACE: if len(Variables.name) != 0: Variables.name = Variables.name[:-1] elif event.key == K_SPACE or event.unicode != " " and event.unicode>=u' ': if len(Variables.name) < 32: Variables.name += event.unicode self.refresh() elif event.key == K_SPACE or event.key == K_RETURN: #done = True self.change_right() util.save_config() return self.selection
def draw(): surface.fill(color) if len(clouds) != 0: for cloud in clouds: cloud.draw(surface) particle_system.draw(surface) player1.draw(surface) # surface.blit(player1.img, 100, 100)#player1.position[0], player1.position[1]) for flower in flowers: flower.draw(surface) for bee in bees: bee.draw(surface) ba.draw(surface, baske) surf_level = font1.render("Level: "+str(level), True, (0,0,0)) surface.blit(surf_level,(10,10)) surf_lives = font1.render("Lives: "+str(max([player1.lives,0])), True, (0,0,0)) surface.blit(surf_lives,(10,30)) surf_score = font1.render("Score: "+str(player1.score), True, (0,0,0)) surface.blit(surf_score,(screen_size[0]-surf_score.get_width()-10,10)) surf_highscore = font1.render("High Score: "+str(hs), True, (0,0,0)) surface.blit(surf_highscore,(screen_size[0]-surf_highscore.get_width()-10,30)) surf_health = font1.render("Health: {}".format(player1.health), True, (0, 0, 0)) surface.blit(surf_health,(10,50)) surf_bee = font1.render("*you do not need to kill the bee(s) to win*", True, (0, 0, 0)) surface.blit(surf_bee,(260,screen_size[1]-surf_bee.get_height()-10)) if player1.lives >= 0: surf_remain = font1.render("Flowers Left: "+str(len(flowers)), True, (0,0,0)) surface.blit(surf_remain,(10,screen_size[1]-surf_remain.get_height()-10)) if level_text_brightness > 0.0: col = rndint(255.0*level_text_brightness) surf_level = font2.render("Level "+str(level), True, (col,col,col),(0,0,0)) pos = [ (screen_size[0]/2.0)-(surf_level.get_width()/2.0), (screen_size[1]/2.0)-(surf_level.get_height()/2.0) ] surface.blit(surf_level,pos,special_flags=BLEND_MAX) else: surf_level = font1.render("F2 Starts New Game", True, (0,0,0)) pos = [ (screen_size[0]/2.0)-(surf_level.get_width()/2.0), (screen_size[1]/2.0)-(surf_level.get_height()/2.0) ] surface.blit(surf_level,pos) surf_fps = font1.render("FPS: "+str(round(clock.get_fps(),1)), True, (0,0,0)) surface.blit(surf_fps,(screen_size[0]-surf_fps.get_width()-10,screen_size[1]-surf_fps.get_height()-10)) pygame.display.flip()
def run(self): done = False while not done: util.android_check_pause() self.screen.blit(self.sky, self.screen.get_rect()) self.water.update() self.water_sprite.draw(self.screen) if not self.gametype_select: self.render("New Game", Menu.NEWGAME) self.render("High Scores", Menu.HIGHSCORES) #self.render("Options", Menu.OPTIONS) self.render("Quit", Menu.QUIT) else: self.render("Story mode", Menu.STORY) self.render("Endless mode", Menu.ENDLESS) cloud.update() cloud.draw(self.screen) rect = self.logo.get_rect() rect.centerx = self.screen.get_rect().centerx rect.top = 0 self.screen.blit(self.logo, rect) image = self.url_font.render("https://github.com/zielmicha/funnyboat-android", True, (0,0,0)) bottom = rect.bottom rect = image.get_rect() rect.midbottom = self.screen.get_rect().midbottom #rect.bottomright = self.screen.get_rect().bottomright #rect.bottom = bottom self.screen.blit(image, rect) pygame.display.flip() self.t += 1 nextframe = False while not nextframe: pygame.event.post(pygame.event.wait()) for event in pygame.event.get(): if event.type == QUIT or \ event.type == KEYDOWN and event.key == K_ESCAPE: self.selection = -1 done = True nextframe = True elif event.type == MOUSEBUTTONUP or event.type == MOUSEBUTTONDOWN: pos = event.pos for id, rect in self.option_rects.items(): if rect.collidepoint(pos): self.selection = id if event.type == MOUSEBUTTONUP: done = True elif event.type == NEXTFRAME: nextframe = True elif event.type == JOYAXISMOTION: if event.axis == 1: if event.value < -0.5: self.selection -= 1 if not self.gametype_select: if self.selection == Menu.OPTIONS: self.selection = Menu.HIGHSCORES if self.selection < 0: self.selection = 0 if event.value > 0.5: self.selection += 1 if not self.gametype_select: if self.selection == Menu.OPTIONS: self.selection = Menu.QUIT if self.selection > Menu.QUIT: self.selection = Menu.QUIT else: if self.selection > Menu.ENDLESS: self.selection = Menu.ENDLESS elif event.type == JOYBUTTONDOWN: if event.button == 0: done = True elif event.type == KEYDOWN: if event.key == K_UP: self.selection -= 1 if not self.gametype_select: if self.selection == Menu.OPTIONS: self.selection = Menu.HIGHSCORES if self.selection < 0: self.selection = 0 elif event.key == K_DOWN: self.selection += 1 if not self.gametype_select: if self.selection == Menu.OPTIONS: self.selection = Menu.QUIT if self.selection > Menu.QUIT: self.selection = Menu.QUIT else: if self.selection > Menu.ENDLESS: self.selection = Menu.ENDLESS elif event.key == K_SPACE or event.key == K_RETURN: done = True return self.selection
def run(self): water = Water.global_water water_sprite = pygame.sprite.Group() water_sprite.add(water) if util.android: util.android.show_keyboard() while not self.done: self.screen.blit(self.sky, self.screen.get_rect()) water.update() cloud.update() cloud.draw(self.screen) water_sprite.draw(self.screen) rect = self.title.get_rect() rect.centerx = self.screen.get_rect().centerx rect.top = 10 self.screen.blit(self.title, rect) for i in range(10): color = (0, 0, 0) if self.inputting and self.input_score == i: color = (220, 120, 20) score = self.scores[i] image = self.font.render(str(i + 1) + ". " + score[0], True, color) rect = image.get_rect() rect.top = 50 + i * 1.5 * rect.height rect.left = 10 self.screen.blit(image, rect) image = self.font.render(str(score[1]), True, color) rect = image.get_rect() rect.top = 50 + i * 1.5 * rect.height rect.right = self.screen.get_rect().right - 10 self.screen.blit(image, rect) pygame.display.flip() nextframe = False while not nextframe: pygame.event.post(pygame.event.wait()) for event in pygame.event.get(): if event.type == NEXTFRAME: nextframe = True continue if self.inputting: if event.type == QUIT: self.inputting = False self.write_scores() if event.type == KEYDOWN: if event.key == K_RETURN or event.key == K_ESCAPE: self.inputting = False self.write_scores() elif event.key == K_BACKSPACE: if len(self.scores[self.input_score][0]) != 0: self.scores[self.input_score][0] = self.scores[self.input_score][0][:-1] elif event.key == K_SPACE or event.unicode != " ": if len(self.scores[self.input_score][0]) < 32: self.scores[self.input_score][0] += event.unicode else: if ( event.type == KEYDOWN or event.type == QUIT or event.type == JOYBUTTONDOWN or event.type == MOUSEBUTTONDOWN ): self.done = True nextframe = True