Ejemplo n.º 1
0
	def update(self, delta):
		self.time += delta
		self.delta = delta
		self.current_squares = self.getsquares(self.camera.rect)

		for obj in self.objects:
			obj.update(delta)

		self.player.update(delta)

		self.camera.update(delta)
		self.space.step(delta)

		if len(self.destroyed) > 0:
			for obj in self.destroyed:
				obj.destroy()
			self.destroyed = []

		if game.get_key_pressed(pygame.K_ESCAPE):
			game.set_state(MenuState())

		for message in self.messages:
			message[1] -= delta
			if message[1] < 0:
				self.messages.remove(message)
Ejemplo n.º 2
0
	def draw(self, screen):
		#self.camera.draw_bg(screen, resources.leafy)

		for vine in self.vines:
			vine.draw(screen)
		for ground in self.grounds:
			ground.draw(screen)
		for obj in self.objects:
			obj.draw(screen)

		self.player.draw(screen)

		self.player.gui(screen)

		for i, message in enumerate(self.messages):
			gui.draw_text(screen, message[0], (20, screen.get_height()-30-30*i), "red")

		if game.get_key_pressed(pygame.K_F1):
			self.show_info = not self.show_info
		if self.show_info:
			gui.draw_text(screen, str(1/self.delta))
Ejemplo n.º 3
0
	def update(self, delta):
		self.keyboard = pymunk.Vec2d(0, 0)
		if self.health > 0:
			if self.hunger > 100:
				self.hunger = 100
			if self.hunger < 0:
				self.health += self.hunger
				self.hunger = 0
			if self.health < self.maxhealth:
				self.health += self.hunger*.01*delta

			if game.get_mouse_down(3) and self.melee_attack == 0:
				vec = (pymunk.Vec2d(self.game.camera.get_mouse_pos())-self.body.position).normalized()*(self.size+30)
				colls = physics.collisions(self.game.space, self.body.position, self.body.position+vec, COLLISION_ENEMY)
				for coll in colls:
					coll.shape.body.enemy.hit(self.melee_damage, self, vec)
				self.melee_attack = self.melee_attack_speed
				self.chomp = 1
			if self.melee_attack > 0:
				self.melee_attack -= delta
			else:
				self.melee_attack = 0
			if game.get_mouse_down(1) and self.ranged_attack == 0:
				self.game.objects.append(Bullet(self.game, self.body.position, (pymunk.Vec2d(self.game.camera.get_mouse_pos())-self.body.position).normalized()*200, self.ranged_damage, self))
				self.ranged_attack = self.ranged_attack_speed
				self.chomp = 1
			if self.ranged_attack > 0:
				self.ranged_attack -= delta
			else:
				self.ranged_attack = 0
			if self.flap > 0:
				self.flap -= delta
			else:
				self.flap = 0
			if self.chomp > 0:
				self.chomp -= delta*3
			else:
				self.chomp = 0

			if game.get_key_down(pygame.K_a):
				self.facing = False
				self.keyboard.x -= 1
			if game.get_key_down(pygame.K_d):
				self.facing = True
				self.keyboard.x += 1
			if game.get_key_down(pygame.K_w):
				self.keyboard.y += 1
			if game.get_key_down(pygame.K_s):
				self.keyboard.y -= 1

			self.fallthrough = self.keyboard.y < 0.0
			self.hunger -= 2*delta;

			if self.grounded:
				self.jumps = self.maxjumps
			if self.remainingBoost > 0:
				self.remainingBoost -= delta
			else:
				self.remainingBoost = 0
			if game.get_key_pressed(pygame.K_w) and self.jumps > 0:
				jump_v = pow(2.0*self.jumpheight/2*GRAVITY, .5)
				#self.body.velocity += (self.groundNormal if self.groundNormal.length > 0 else pymunk.Vec2d(0, 1))*jump_v
				self.body.velocity = pymunk.Vec2d(0, jump_v)
				self.remainingBoost = self.jumpheight/jump_v
				self.jumps -= 1
				self.flap = 1

			self.distance_travelled += self.body.velocity.length*delta
			self.movin += self.body.velocity.x*delta
			self.time += delta
			if(self.distance_travelled > 1000):
				self.upgrade_movement += 1
				self.distance_travelled = 0
			if(self.enemies_killed > 5):
				self.upgrade_attack += 1
				self.enemies_killed = 0
			if(self.time > 30):
				self.upgrade_utility += 1
				self.time = 0