Beispiel #1
0
	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
Beispiel #2
0
	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()
Beispiel #3
0
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
Beispiel #4
0
	def draw(self, screen):
		gui.draw_image(screen, resources.help)
		if gui.Button(screen, "back", "back", (300, 540, 200, 50)):
			game.set_state(MenuState())
Beispiel #5
0
	def draw_image(self, screen, tex, pos):
		gui.draw_image(screen, tex, (self.convertx(pos[0]), self.converty(pos[1])))
Beispiel #6
0
	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