Esempio n. 1
0
	def load(self):
		self.batch = graphics.Batch()
		self.background = graphics.OrderedGroup(0)
		self.stars = Stars(Size(2000, 2000), self.batch, self.background)
		centre = Vector(self.size.width/2, self.size.height/2)
		image = centre_image(resource.image("win.png"))
		self.logo = sprite.Sprite(image, centre.x, centre.y)
Esempio n. 2
0
	def load(self):
		centre = Vector(self.size.width/2, self.size.height/2)
		image = centre_image(resource.image("lattyware.png"))
		self.logo = sprite.Sprite(image, centre.x, centre.y)
		self.logo.opacity = 0
		self.fade = 0
		self.fade_in = True
Esempio n. 3
0
	def populated(self, populated):
		if not populated == self._populated:
			self._populated = populated
			if populated:
				name = self.type
			else:
				name = "raw_"+self.type
			self.sprite.image = centre_image(resource.image(name+".png"))
			if self.type == "home": #HACK
				self.sprite.visible = True
Esempio n. 4
0
	def __init__(self, x, y, batch, group, space):
		self.speed = 10
		self.group = PhysicsBodyGroup(group, self)
		self.sprite = sprite.Sprite(centre_image(resource.image("pushing.png")), 0, 0, batch=batch, group=self.group)
		self.body = Body(2, moment_for_circle(2, 5, 14))
		self.body.position = x, y
		self.shape = Circle(self.body, 15)
		self.shape.elasticity = 0
		self.shape.friction = 0.5
		self.old = (0, 0)
		self.target = (x, y)
		space.add(self.body, self.shape)
Esempio n. 5
0
	def __init__(self, x, y, size, batch, group, space):
		x, y = x-size/2, y-size/2
		points = randint(15, 20)
		self.batch = batch
		self.body = Body(size, moment_for_circle(size, 0, size))
		self.body.position = x, y
		self.shape = Circle(self.body, 1.1*size)
		self.shape.elasticity = 0.35
		self.shape.friction = 0.1
		self.group = PhysicsBodyGroup(group, self)
		colour = list(chain.from_iterable(repeat(self.grey(), points)))
		self.points = list(self.construct_points(points, size))
		self.vertex_list = batch.add(
			points, gl.GL_POLYGON, self.group,
			('v2i', list(chain.from_iterable(self.points))),
			('c3B', colour)
		)
		self.body.angle = randint(0, int(maths.radians(360)/points))
		self.type = self._weighted_random_choice(Asteroid.TYPES)
		self.sprite = sprite.Sprite(centre_image(resource.image("raw_"+self.type+".png")), 0, 0, batch=batch, group=self.group)
		self.sprite.visible = False
		self._populated = False
		space.add(self.body, self.shape)
Esempio n. 6
0
	def load(self):
		self.world_size = Size(3000, 3000)

		self.camera = Camera(self.size, self.world_size, 1000, 10)

		self._tool = None
		self.tool = None

		self.batch = graphics.Batch()
		self.background = CameraGroup(graphics.OrderedGroup(0), self.camera)
		self.foreground = CameraGroup(graphics.OrderedGroup(1), self.camera)
		self.playerg = CameraGroup(graphics.OrderedGroup(2), self.camera)
		self.world_ui = CameraGroup(graphics.OrderedGroup(3), self.camera)
		self.ui = graphics.OrderedGroup(2)

		self.space = Space()
		self.space.gravity = (0.0, 0.0)
		buffer = 100
		borders = Body()
		borders.position = (0, 0)
		left = Segment(borders, (-buffer, -buffer), (-buffer, self.world_size.height+buffer), buffer)
		bottom = Segment(borders, (-buffer, -buffer), (self.world_size.width+buffer, -buffer), buffer)
		right = Segment(borders, (self.world_size.width+buffer, self.world_size.height+buffer),
			(self.world_size.width+buffer, -buffer), buffer)
		top = Segment(borders, (self.world_size.width+buffer, self.world_size.height+buffer),
			(-buffer, self.world_size.height+buffer), buffer)
		self.space.add_static(left, bottom, right, top)

		self.stars = Stars(self.world_size, self.batch, self.background)

		self.asteroids = Asteroid.populate(50, 100, self.world_size, self.batch, self.foreground, self.space)

		if not self.asteroids:
			print("None of a particular resource on this asteroid belt, that'd be unfair. Trying again.")
			self.end(Main())
			return

		self.home_world = choice([asteroid for asteroid in self.asteroids if asteroid.position.y > self.world_size.height/4*3])
		self.home_world.type = "home"
		self.home_world.populated = True

		x, y = self.home_world.position
		self.camera.move(Vector(x-self.size.width/2, y-self.size.height/2))

		# Let's make stuff a bit more interesting.
		for asteroid in self.asteroids:
			if not asteroid.type == "home":
				asteroid.body.apply_impulse((triangular(-20000, 20000, 0), triangular(-20000, 20000, 0)))

		x, y = self.home_world.position
		self.player = Person(x+150, y+150, self.batch, self.playerg, self.space)
		self.mouse = x+150, y+150

		centre = Vector(self.size.width/2, self.size.height/2)
		image = centre_image(resource.image("logo.png"))
		self.logo = sprite.Sprite(image, centre.x, centre.y, batch=self.batch, group=self.ui)
		self.logo.opacity = 255
		self.fade = True
		self.faded = False

		planet = centre_image(resource.image("planet.png"))
		x = self.world_size.width/2
		y = planet.height/2
		self.planet_sprite = sprite.Sprite(planet, x, y, batch=self.batch, group=self.world_ui)
		self.win_box = BB(x-200, y-200, x+200, y+200)

		#self.tools = sorted([tool(self.space) for tool in Tool.__subclasses__()], key=attrgetter("order"), reverse=True)
		#self.buttons = {tool: Button(30, 30+number*50, tool.image, tool.description, self.use_tool(tool), self.ui, self.batch) for number, tool in enumerate(self.tools)}

		self.constraints = set()
Esempio n. 7
0
	def __init__(self, order, name, description, space):
		self.order = order
		self.name = name
		self.description = description
		self.image = centre_image(resource.image(self.name.lower()+".png"))
		self.space = space