def draw_bg(self, screen, tex): iwidth = tex.get_width() iheight = tex.get_height() swidth = screen.get_width() sheight = screen.get_height() speed = .5 startx = -self.rect[0]*self.x_scaling*speed starty = self.rect[1]*self.y_scaling*speed while startx < -iwidth: startx += iwidth while starty < -iheight: starty += iheight while startx > 0: startx -= iwidth while starty > 0: starty -= iheight x = startx while x < swidth: y = starty while y < sheight: gui.draw_image(screen, tex, (x, y)) y += iheight x += iwidth
def draw(self, screen): gui.draw_image(screen, resources.splash) with gui.Box(screen, "Main Menu", (450, 300, 220, 240)): if gui.Button(screen, "play", "play", (10, 10, 200, 50)): game.set_state(GameState()) if gui.Button(screen, "help", "help", (10, 70, 200, 50)): game.set_state(HelpState()) if gui.Button(screen, "quit", "quit", (10, 130, 200, 50)): game.quit()
def run(screen, clock, alg): print("IT'S ON") running = True disrupted = False while running and not disrupted: # main loop running = alg.calculate() for event in pygame.event.get(): if event.type == pygame.QUIT: disrupted = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: disrupted = True if alg.has_best_fitness(): alg.display_best_fitness() pygame.display.set_caption("img" + str(alg.number_of_imgs) + \ " ft" + str(alg.percentage) + \ "% it" + str(alg.iterations)) gui.display_screen(screen, clock) gui.draw_image(alg.get_best_image(), screen) alg.populate_best_images() alg.crossover() return disrupted
def draw(self, screen): gui.draw_image(screen, resources.help) if gui.Button(screen, "back", "back", (300, 540, 200, 50)): game.set_state(MenuState())
def draw_image(self, screen, tex, pos): gui.draw_image(screen, tex, (self.convertx(pos[0]), self.converty(pos[1])))
def gui(self, screen): if self.health <= 0: gui.draw_big_text(screen, "YOU DIED! :(", (198, 298), "white") gui.draw_big_text(screen, "YOU DIED! :(", (200, 300), "black") return gui.draw_text(screen, "press escape", (300, 400)) gui.draw_box(screen, (20, 20, 20+max(min(self.hunger, 100), 0)*2, 50), "blue") gui.draw_box(screen, (screen.get_width()-(20+max(min(self.health, 100), 0)*2), 20, max(min(self.health, 100), 0)*2, 50), "green") if self.upgrade_attack > 0: if gui.Button(screen, "upgrade_attack", "a", (300, 20, 50, 50), draw=False): if self.menu: self.menu = None else: self.menu = MENU_ATTACK gui.draw_image(screen, resources.attack_icon, (300, 20)) if self.upgrade_utility > 0: if gui.Button(screen, "upgrade_utility", "u", (360, 20, 50, 50), draw=False): if self.menu: self.menu = None else: self.menu = MENU_UTILITY gui.draw_image(screen, resources.utility_icon, (360, 20)) if self.upgrade_movement > 0: if gui.Button(screen, "upgrade_movement", "m", (420, 20, 50, 50), draw=False): if self.menu: self.menu = None else: self.menu = MENU_MOVEMENT gui.draw_image(screen, resources.movement_icon, (420, 20)) if self.menu == MENU_ATTACK: selection = gui.Menu(screen, "upgrade_attack", "evolve", ["ranged", "melee"], (300, 80, 170, 180)) if selection == 1: if self.ranged_damage < 50: self.ranged_damage += 10 self.game.send_message("more ranged damage!") else: if self.ranged_attack_speed > self.minattackspeed: self.ranged_attack_speed -= .1 self.game.send_message("more ranged attack speed!") self.upgrade_attack -= 1 self.grow(self.growth) self.menu = None if selection == 2: if self.melee_damage < 60: self.melee_damage += 10 self.game.send_message("more melee damage!") else: if self.melee_damage_speed > self.minattackspeed-.1: self.melee_damage_speed -= .1 self.game.send_message("more melee attack speed!") self.upgrade_attack -= 1 self.grow(self.growth) self.menu = None if self.menu == MENU_UTILITY: selection = gui.Menu(screen, "upgrade_utility", "evolve", ["health"], (300, 80, 170, 120)) if selection == 1: self.health += 10 self.maxhealth += 10 self.game.send_message("more health!") self.upgrade_utility -= 1 self.grow(self.growth) self.menu = None if self.menu == MENU_MOVEMENT: selection = gui.Menu(screen, "upgrade_movement", "evolve", ["jumping", "running"], (300, 80, 170, 180)) if selection == 1: if self.maxjumps == 1: self.jumpheight *= 2 self.maxjumps += 1 self.game.send_message("double jumps!") elif self.maxjumps == 2: self.maxjumps = 100000 self.game.send_message("infinite jumps!") else: self.jumpheight += 10 self.airspeed += 30 self.game.send_message("better flying!") self.upgrade_movement -= 1 self.grow(self.growth) self.menu = None if selection == 2: self.speed += 50 self.game.send_message("faster running!") self.upgrade_movement -= 1 self.grow(self.growth) self.menu = None if selection == 3: self.swimspeed += 50 self.upgrade_movement -= 1 self.grow(self.growth) self.menu = None