コード例 #1
0
ファイル: hud.py プロジェクト: willgoix/Tanks
	def __init__(self, game, screen):
		ui.UI.__init__(self, screen)
		self.game = game
		self.playersWidgets = {}

		''' LEFT BAR '''
		# TODO: Seleção de munição
		panel = pygame.transform.scale(ui.IMAGES['metal_panel'], (250, 150))
		self.addWidget(label.Image([10, 10], panel, centralization=ui.RIGHT | ui.BOTTOM))

		self.timer = label.Text([60, 25], 'Próximo turno: 00', fontsize=15, centralization=ui.RIGHT | ui.BOTTOM)
		self.addWidget(self.timer)

		self.fuel = bar.Bar([panel.get_size()[0] / 2 + 10, 60],
						size=[panel.get_size()[0] - 60, 15],
						min=0, max=100, initial=100,
						image_bar_left=ui.IMAGES['bar_yellow_left'],
						image_bar_mid=ui.IMAGES['bar_yellow_mid'],
						image_bar_right=ui.IMAGES['bar_yellow_right'])
		self.addWidget(self.fuel)
		self.addWidget(label.Text([panel.get_size()[0] // 5, 54], 'Combustível', centralization=ui.RIGHT | ui.BOTTOM))

		''' RIGHT BAR '''
		panelLife = pygame.transform.scale(ui.IMAGES['metal_panel'], (250, len(self.game.getLiveEntities()) * 20 + 60))
		self.addWidget(label.Image([my.SCREEN_WIDTH - 10, 10], panelLife, centralization=ui.LEFT | ui.BOTTOM))
		self.addWidget(label.Text([my.SCREEN_WIDTH - 65, 25], 'Vida dos jogadores', centralization=ui.LEFT | ui.BOTTOM))

		y = 40
		for entity in self.game.getLiveEntities():
			y += 20
			self.playersWidgets[entity.id] = [
				label.Text([entity.pos[0], entity.pos[1] - 50], entity.nickname, high=True),

				bar.Bar([entity.pos[0], entity.pos[1] - 40],
						size=[entity.image.get_width(), 20],
						min=0, max=entity.health, initial=entity.health,
						image_bar_left=ui.IMAGES['bar_red_left'],
						image_bar_mid=ui.IMAGES['bar_red_mid'],
						image_bar_right=ui.IMAGES['bar_red_right']),

				bar.Bar([my.SCREEN_WIDTH - panelLife.get_size()[0] / 2 - 10, y],
						size=[panelLife.get_size()[0] - 60, 15],
						min=0, max=entity.health, initial=entity.health,
						image_bar_left=ui.IMAGES['bar_red_left'],
						image_bar_mid=ui.IMAGES['bar_red_mid'],
						image_bar_right=ui.IMAGES['bar_red_right'])]

			#self.addWidget(self.playersWidgets[entity.id][0])
			#self.addWidget(self.playersWidgets[entity.id][1])
			self.addWidget(self.playersWidgets[entity.id][2])

			self.addWidget(label.Text([my.SCREEN_WIDTH - panelLife.get_size()[0] + 25, y - 7], entity.nickname,
									  centralization=ui.RIGHT | ui.BOTTOM))

		self.next = self
コード例 #2
0
ファイル: menu.py プロジェクト: willgoix/Tanks
	def __init__(self, screen):
		ui.UI.__init__(self, screen)

		self.fpsValue = label.Text([my.SCREEN_HALF_WIDTH + 25, my.SCREEN_HEIGHT // 6], str(my.FPS), fontsize=20)
		self.addWidget(self.fpsValue)
		self.addWidget(label.Text([my.SCREEN_HALF_WIDTH - 25, my.SCREEN_HEIGHT // 6], "FPS", fontsize=20))
		self.addWidget(slider.SliderBar(partial(self.sliderFps), [my.SCREEN_HALF_WIDTH, my.SCREEN_HEIGHT // 4], (300, 5), min=20,
							 max=200, step=1,
							 initial=my.FPS,
							 image_slider=ui.IMAGES['slider'],
							 image_pointer=ui.IMAGES['slider_pointer']))

		contents = []
		modes = pygame.display.list_modes()
		for mode in range(0, len(modes) - 5):  # -5 = Tirando os 5 menores valores pois é pequeno até demais pro jogo
			contents.append(str(modes[mode][0]) + ' x ' + str(modes[mode][1]) + (' (FULL)' if mode == 0 else ''))
		self.addWidget(button.Drop(self, contents,
								   partial(self.selectResolution),
								   [my.SCREEN_HALF_WIDTH, my.SCREEN_HALF_HEIGHT - 50],
								   text="Resolução",
								   image_surface=ui.IMAGES['button'],
								   image_pressed=ui.IMAGES['button_pressed'],
								   down=True))

		self.addWidget(label.Text([my.SCREEN_HALF_WIDTH + 30, my.SCREEN_HALF_HEIGHT], "Acelerar CPU (tela cheia)", fontsize=20))
		self.addWidget(checker.Checker(partial(self.checkedHardware),
									   [my.SCREEN_HALF_WIDTH - 150, my.SCREEN_HALF_HEIGHT],
									   checked=my.HARDWARE_ACCELERATED,
									   image=ui.IMAGES['box'],
									   image_checked=ui.IMAGES['box_checked']))

		self.addWidget(label.Text([my.SCREEN_HALF_WIDTH + 20, my.SCREEN_HALF_HEIGHT + 40], "Áudio, sons e vozes", fontsize=20))
		self.addWidget(checker.Checker(partial(self.checkedAudio),
									   [my.SCREEN_HALF_WIDTH - 150, my.SCREEN_HALF_HEIGHT + 40],
									   checked=not my.MUTED,
									   image=ui.IMAGES['box'],
									   image_checked=ui.IMAGES['box_checked']))

		self.addWidget(button.ImageButton(lambda: self.back(),
										  [my.SCREEN_HALF_WIDTH - 20, my.SCREEN_HEIGHT - (my.SCREEN_HEIGHT // 6)],
										  text="Voltar",
										  image_surface=ui.IMAGES['button'],
										  image_pressed=ui.IMAGES['button_pressed'],
										  centralization=ui.LEFT))
		self.addWidget(button.ImageButton(lambda: self.save(),
										  [my.SCREEN_HALF_WIDTH + 20, my.SCREEN_HEIGHT - (my.SCREEN_HEIGHT // 6)],
										  text="Salvar",
										  image_surface=ui.IMAGES['button_green'],
										  image_pressed=ui.IMAGES['button_green_pressed'],
										  centralization=ui.RIGHT))
		self.next = self
コード例 #3
0
ファイル: win.py プロジェクト: willgoix/Tanks
    def __init__(self, screen):
        ui.UI.__init__(self, screen)

        self.text = label.Text(my.SCREEN_HALF_SIZE, 'Vencedor!', fontsize=20)
        self.addWidget(self.bar)

        self.next = self
コード例 #4
0
ファイル: menu.py プロジェクト: willgoix/Tanks
	def __init__(self, screen):
		ui.UI.__init__(self, screen)

		self.addWidget(label.Text([my.SCREEN_HALF_WIDTH, 100], "Desenvolvido por:", fontsize=24))
		self.addWidget(label.Text([my.SCREEN_HALF_WIDTH, 140], "Willian Gois ~the coder guy", fontsize=20))
		self.addWidget(label.Text([my.SCREEN_HALF_WIDTH, 160], "Lucas Verona ~the h4ck3r m4n", fontsize=20))

		self.addWidget(label.Text([my.SCREEN_HALF_WIDTH, 220], "Texturas por:", fontsize=24))
		self.addWidget(label.Text([my.SCREEN_HALF_WIDTH, 260], "(UI): Kenney Vleugels (www.kenney.nl)", fontsize=20))

		self.addWidget(button.ImageButton(lambda: self.back(),
										  [my.SCREEN_HALF_WIDTH, my.SCREEN_HEIGHT - (my.SCREEN_HEIGHT // 6)],
										  text="Voltar",
										  image_surface=ui.IMAGES['button'],
										  image_pressed=ui.IMAGES['button_pressed']))

		self.next = self
コード例 #5
0
ファイル: menu.py プロジェクト: willgoix/Tanks
	def __init__(self, screen):
		ui.UI.__init__(self, screen)

		self.addWidget(label.Text([50, 50], "Configure o jogo:", fontsize=18, centralization=ui.RIGHT))

		self.addWidget(input.TextBox(partial(self.inputName), [my.SCREEN_HALF_WIDTH, my.SCREEN_HEIGHT // 6], [300, 40],
									 'Digite seu nicknme',
									 box_image=ui.IMAGES['button']))
		self.nickname = 'Jogador'

		self.enemiesValue = label.Text([my.SCREEN_HALF_WIDTH + 50, my.SCREEN_HALF_HEIGHT // 2 + 40], "5", fontsize=18)
		self.addWidget(self.enemiesValue)
		self.addWidget(label.Text([my.SCREEN_HALF_WIDTH - 10, my.SCREEN_HALF_HEIGHT // 2 + 40], "Inimigos", fontsize=18))
		self.addWidget(slider.SliderBar(partial(self.sliderEnemies), [my.SCREEN_HALF_WIDTH, my.SCREEN_HEIGHT // 3 + 32], (200, 5),
							 min=1, max=10, step=1,
							 initial=5,
							 image_slider=ui.IMAGES['slider'],
							 image_pointer=ui.IMAGES['slider_pointer']))

		self.mapSize = [my.SCREEN_WIDTH, my.SCREEN_HEIGHT + 200]
		contents = []
		for i in range(0, 500, 100):
			contents.append(str(my.SCREEN_WIDTH + i) + ' x ' + str(my.SCREEN_HEIGHT + 200))
		self.addWidget(button.Drop(self, contents,
								   partial(self.selectMapSize),
								   [my.SCREEN_HALF_WIDTH, my.SCREEN_HALF_HEIGHT],
								   text="Tamanho do Mapa",
								   image_surface=pygame.transform.scale(ui.IMAGES['button'], (270, 50)),
								   image_pressed=pygame.transform.scale(ui.IMAGES['button_pressed'], (270, 50)),
								   down=True))

		self.addWidget(button.ImageButton(lambda: self.back(),
										  [my.SCREEN_HALF_WIDTH - 20, my.SCREEN_HEIGHT - (my.SCREEN_HEIGHT // 6)],
										  text="Voltar",
										  image_surface=ui.IMAGES['button'],
										  image_pressed=ui.IMAGES['button_pressed'],
										  centralization=ui.LEFT))
		self.addWidget(button.ImageButton(lambda: self.startGame(),
										  [my.SCREEN_HALF_WIDTH + 20, my.SCREEN_HEIGHT - (my.SCREEN_HEIGHT // 6)],
										  text="Iniciar Jogo",
										  image_surface=ui.IMAGES['button_green'],
										  image_pressed=ui.IMAGES['button_green_pressed'],
										  centralization=ui.RIGHT))

		self.next = self
コード例 #6
0
    def doTurnAnimation(self):
        text = label.Text(my.SCREEN_HALF_SIZE,
                          'Seu turno é agora!' if self.currentEntity
                          == self.game.player else 'Turno de: ' +
                          self.currentEntity.nickname,
                          fontsize=30)
        self.game.hud.addWidget(text)

        lib.delayedfunc.DelayedFunc(partial(self.game.hud.removeWidget, text),
                                    2)
コード例 #7
0
	def onDeath(self):
		sound.play('game_over')
		text = label.Text((my.SCREEN_HALF_WIDTH, my.SCREEN_HALF_HEIGHT - 50), "Você perdeu!", fontsize=30)
		self.game.hud.addWidget(text)

		def remove():
			self.game.hud.removeWidget(text)
			self.game.end()

		lib.delayedfunc.DelayedFunc(lambda: remove(), 5)
コード例 #8
0
ファイル: menu.py プロジェクト: willgoix/Tanks
	def __init__(self, screen):
		ui.UI.__init__(self, screen)

		self.addWidget(label.Text(my.SCREEN_HALF_SIZE, "Em desenvolvimento...", fontsize=24))
		self.addWidget(button.ImageButton(lambda: self.back(),
										  [my.SCREEN_HALF_WIDTH, my.SCREEN_HEIGHT - (my.SCREEN_HEIGHT // 6)],
										  text="Voltar",
										  image_surface=ui.IMAGES['button'],
										  image_pressed=ui.IMAGES['button_pressed']))

		self.next = self
コード例 #9
0
ファイル: loading.py プロジェクト: willgoix/Tanks
	def __init__(self, screen):
		ui.UI.__init__(self, screen)

		self.text = label.Text(my.SCREEN_HALF_SIZE, 'Gerando mapa...', fontsize=20)
		self.bar = bar.Bar([my.SCREEN_HALF_HEIGHT+100, my.SCREEN_HALF_HEIGHT+30], size=[400, 20],
							min=0, max=100, initial=1,
							image_bar_left=ui.IMAGES['bar_red_left'],
							image_bar_mid=ui.IMAGES['bar_red_mid'],
							image_bar_right=ui.IMAGES['bar_red_right'])

		self.addWidget(self.text)
		self.addWidget(self.bar)

		self.next = self
コード例 #10
0
ファイル: menu.py プロジェクト: willgoix/Tanks
	def __init__(self, screen):
		ui.UI.__init__(self, screen)
		global BACKGROUND
		BACKGROUND = pygame.transform.scale(ui.IMAGES['background'], my.SCREEN_SIZE)

		self.logo = label.Image([my.SCREEN_HALF_WIDTH, -my.SCREEN_HEIGHT], pygame.image.load("assets/logo.png"),
								centralization=ui.BOTTOM)
		self.addWidget(self.logo)

		self.playOfflineButton = button.ImageButton(lambda: self.playOffline(),
													[my.SCREEN_HALF_WIDTH, my.SCREEN_HEIGHT],
													text="Jogar Offline",
													image_surface=ui.IMAGES['button'],
													image_pressed=ui.IMAGES['button_pressed'])
		self.playOnlineButton = button.ImageButton(lambda: self.playOnline(),
												   [my.SCREEN_HALF_WIDTH, my.SCREEN_HEIGHT],
												   text="Jogar Online",
												   image_surface=ui.IMAGES['button'],
												   image_pressed=ui.IMAGES['button_pressed'])
		self.optionsButton = button.ImageButton(lambda: self.options(),
												[my.SCREEN_HALF_WIDTH, my.SCREEN_HEIGHT],
												text="Opções",
												image_surface=ui.IMAGES['button'],
												image_pressed=ui.IMAGES['button_pressed'])
		self.creditsButton = button.ImageButton(lambda: self.credits(),
												[my.SCREEN_HALF_WIDTH, my.SCREEN_HEIGHT],
												text="Créditos",
												image_surface=ui.IMAGES['button'],
												image_pressed=ui.IMAGES['button_pressed'])
		self.addWidget(self.playOfflineButton)
		self.addWidget(self.playOnlineButton)
		self.addWidget(self.optionsButton)
		self.addWidget(self.creditsButton)
		self.addWidget(label.Text([my.SCREEN_WIDTH - 5, my.SCREEN_HEIGHT], "Tanks v" + my.VERSION, 20, centralization=ui.LEFT | ui.UPPER))

		self.animation = True
		self.readyToNext = False
		self.next = self