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)
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
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
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)
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)
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()
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