Ejemplo n.º 1
0
	def draw(self):
		# Draw components (order is important)
		self.mainmap.draw()
		for effect in self.effects:
			effect.update()
		for monster in self.monsters:
			monster.update()
		game.player.draw()
Ejemplo n.º 2
0
	def execute(self):
		# Process pending events
		for event in pygame.event.get():
			if hasattr(event, 'key') and event.type == pygame.KEYDOWN:
				# One time operations
				if event.key == pygame.K_SPACE:
					game.player.jump()
				elif event.key == pygame.K_ESCAPE:
					game.run = 0
				elif event.key == pygame.K_r:
					# reload map
					self.mainmap = tilemap.NewMap("level1.txt")
			elif hasattr(event, 'button') and event.type == pygame.MOUSEBUTTONDOWN:
				# Mouse buttons (left = 1, right = 3, wheel up = 4, wheel down = 5)
				if event.button == 1:
					game.player.attack(mob.ATTACK_PRIMARY)
				elif event.button == 3:
					game.player.attack(mob.ATTACK_SECONDARY)
			elif event.type == pygame.QUIT:
				game.run = 0 

		# Process move keys (only one can work)
		keys = pygame.key.get_pressed()
		if keys[pygame.K_RIGHT] or keys[pygame.K_d]:
			game.player.move(mob.MOVE_RIGHT)
		elif keys[pygame.K_LEFT] or keys[pygame.K_a]:
			game.player.move(mob.MOVE_LEFT)
		elif keys[pygame.K_UP] or keys[pygame.K_w]:
			game.player.move(mob.MOVE_UP)
		elif keys[pygame.K_DOWN] or keys[pygame.K_s]:
			game.player.move(mob.MOVE_DOWN)
			
		# Process attack keys (only one can work)
		if keys[pygame.K_1]:
			game.player.attack(mob.ATTACK_PRIMARY)
		if keys[pygame.K_2]:
			game.player.attack(mob.ATTACK_SECONDARY)
		if keys[pygame.K_3]:
			game.player.attack(mob.ATTACK_AUX1)
		if keys[pygame.K_4]:
			game.player.attack(mob.ATTACK_AUX2)

		# Update components (order is important)
		game.player.update()
		for effect in self.effects:
			effect.update()
		for monster in self.monsters:
			monster.update()
		self.mainmap.update()
			
		# Return new scene (if required)
		return None