예제 #1
0
    def test_update_skills_on_cooldown(self):
        player1 = Character(1, "suigetsu",
                            pygame.display.get_surface().get_rect().center)
        player1.action = "special_2"
        skill1 = Skill(player1)
        player1.action = "throw"
        skill2 = Skill(player1)

        skills = SkillManager(skill1, skill2)
        self.assertTrue(skill1.name in skills)
        self.assertTrue(skill2.name in skills)

        skill1.cooldown = True
        skills.update(1)
        self.assertFalse(skill1.name in skills)
        self.assertTrue(skill2.name in skills)

        skill2.cooldown = True
        skills.update(1)
        self.assertFalse(skill1.name in skills)
        self.assertFalse(skill1.name in skills)
예제 #2
0
    def test__contains__(self):
        player1 = Character(1, "itachi")
        player1.action = "special_2"
        skill1 = Skill(player1)
        player1.action = "throw"
        skill2 = Skill(player1)

        player2 = Character(2, "naruto")
        player2.action = "special_1"
        skill3 = Skill(player2)
        player2.action = "special_2"
        skill4 = Skill(player2)

        skills = SkillManager(skill1, skill2, skill3, skill4)

        self.assertTrue(Character.skill_names[player1.name]["special_2"]
                        in skills)
        self.assertTrue(Character.skill_names[player1.name]["throw"]
                        in skills)
        self.assertTrue(Character.skill_names[player2.name]["special_1"]
                        in skills)
        self.assertTrue(Character.skill_names[player2.name]["special_2"]
                        in skills)
예제 #3
0
파일: main.py 프로젝트: thesanc/Bomberman
player1 = Character("Bob", "Bomber1.png", [50, 50])

player_list = [player1]

bomb_list = list()

blast_list = list()

end_game = False
while not end_game: #Main loop.
	for event in pygame.event.get(): #get() get keys pressed by the player.
		if event.type == pygame.QUIT: #If the player press a key such as ESC, the window is closed.
			end_game = True

		elif event.type == pygame.KEYDOWN or event.type == pygame.KEYUP: 
			player1.action(event, bomb_list)

	level1.display(game_display)
	player1.move(level1.wall_list, level1.brick_list, bomb_list)

	i = 0
	while i < len(bomb_list):
		if bomb_list[i].countdown > 0:
			bomb_list[i].display(game_display)
			i += 1

		else:
			blast_list.append(Blast(bomb_list[i], bomb_list, player_list, level1))
			bomb_list.pop(i)

	i = 0
예제 #4
0
class main:

	def __init__(self):
		self.clock = pygame.time.Clock()
		self.level1 = Level("Level 1", LEVEL_1_MATRIX, "Wall.png", "Ground.png", "Brick.png")
		self.player = Character("Bob", "Bomber1.png", [50, 50])
		self.player_list = [self.player]
		self.bomb_list = list()
		self.blast_list = list()
		self.score_real_time = 0
		self.score_send = 0
		self.end_game = False
		self.start_time = time.time()
		self.life_image = pygame.image.load(LIFE_IMAGE_NAME).convert()
		pygame.font.init()
		self.the_font = pygame.font.SysFont("Carlito", 12)

	def time_game(self,minutes):
		res= False
		if  time.time() - self.start_time >= minutes*60:
				res = True
		return res

	def run(self,game_display):     
		while not self.end_game:
			for event in pygame.event.get(): #get() get keys pressed by the player.
				if event.type == pygame.QUIT: #If the player press a key such as ESC, the window is closed.
					self.end_game = True
				elif event.type == pygame.KEYDOWN or event.type == pygame.KEYUP:
					self.player.action(event, self.bomb_list)

			self.level1.display(game_display)
			self.player.move(self.level1.wall_list, self.level1.brick_list, self.bomb_list)

			i = 0
			while i < len(self.bomb_list):
				if self.bomb_list[i].countdown > 0:
					self.bomb_list[i].display(game_display)
					i += 1
				else:
					self.blast_list.append(Blast(self.bomb_list[i], self.bomb_list, self.player_list, self.level1))
					self.bomb_list.pop(i)
					self.score_real_time=self.blast_list[i].send_score()

			i = 0
			while i < len(self.blast_list):
				if self.blast_list[i].countdown > 0:
					self.blast_list[i].display(game_display)
					i += 1
				else:
					self.blast_list.pop(i)

			for i in range(self.player.life):
				game_display.blit(self.life_image, (LEVEL_WIDTH-50-35*i, LEVEL_HEIGHT-45))


			# The game last 3 min max
			if self.time_game(TIME_GAME) == True:
				print "GAME OVER : time out"
				self.end_game=True
			

			if self.player.life <= 0:
				print "GAME OVER : no more life"
				self.end_game=True

			time_temp = int(time.time()) - int(self.start_time)
			time_left_second = (time_temp)%60
			time_left_minute = (time_temp)/60
			label = self.the_font.render(str(time_left_minute)+":"+str(time_left_second), 1, (0,225,0))
			game_display.blit(label, (15, 20))
			if len(self.level1.brick_list) == 0: #the player has destroyed every wall
				print "You have destroyed all the walls"
				self.end_game=True
				
			self.player.display(game_display)
			self.clock.tick(FPS) #Update the clock. The program run at FPS frames per second. 
			pygame.display.update() #Show the updated display to the player.
		
		a=self.result()

		pygame.quit()
		
		return a



	def result(self):
		return len(self.level1.brick_list), self.level1.size_brick_list