def _get_slide_rect(self): slide_rect = Rect((0, 0), (self._length, self._height)) try: slide_rect.center = self.get_fus_center() except AttributeError: slide_rect.center = self.get_ghost_center() return slide_rect
def _get_slide_rect(self): slide_rect = Rect((0, 0), (self._length, self._height)) try: slide_rect.center = self.get_fus_center() except AttributeError: slide_rect.center = self.get_ghost_center() return slide_rect
def place_unit(self, name, pos, team_id=-1): prefab = self.mod_loader.entities[name] if 'buildable' not in prefab['tags']: print(f'Trying to place non placeable: {name=}, {team_id=}') return spr = Sprite() rect = Rect((0, 0), prefab['size']) rect.center = pos spr.rect = rect if pygame.sprite.spritecollideany(spr, self.sprites): print(f'Trying to place on occupied area: {name=}, {team_id=}') return pl = self.get_player(team_id) if not pl.has_enough(prefab['cost']): print(f'Trying to place without resources: {name=}, {team_id=}') return cls = self.mod_loader.bases[prefab['base']] u = cls(self, name, pos[0], pos[1], team_id) self.sprites.add(u) self.buildings.add(u) pl.spend(prefab['cost']) self.send([Game.ClientCommands.CREATE, u.name, u.unit_id, team_id, u.get_update_args()])
def __init__(self, size, *args, **kwargs): super(AstronautApp, self).__init__(size, *args, **kwargs) sheet = pygame.image.load( os.path.join(ASSETS_PATH, "img", "astronaut", "walking.png")) astronaut_image_size = Size(7, 16) self.astronaut_animation = Animation(sheet, astronaut_image_size, 7) screen_center = self.screen.get_rect().center self.unit_translator = UnitTranslator(Size(*self.screen.get_size()), Size(*screen_center)) self.error_sound = pygame.mixer.Sound( os.path.join(ASSETS_PATH, "audio", "error.wav")) self.player_control = CharacterControl() astronaut_rect = Rect((0, 0), astronaut_image_size.get_pair()) astronaut_rect.center = screen_center astronaut_rect = self.unit_translator.rect_to_world(astronaut_rect) self.astronaut = Character(PhysicalObject(astronaut_rect), {"speed": Size(20000, 0)}, self.player_control) self.start_music() self.event_subscribe(KEYDOWN, self.on_key_down) self.event_subscribe(KEYUP, self.on_key_up) self.flipped = False
def _load(self): movie=media.movies.load(self.file) self.loaded=True screen=pyzzle.screen.get_rect() rect=Rect((0,0),movie.get_size()) rect.center=screen.center if self.rectRel: left,top,width,height=self.rectRel if width: rect.width =width *screen.width if height: rect.height=height*screen.height rect.center=screen.center if left: rect.left=left*screen.width if top: rect.top=top*screen.height self._rect=rect self.surface=pygame.surface.Surface((rect.width, rect.height)) movie.set_display(self.surface)
def render(self): self.check() if self.disabled: return pos = self.rect.center t = self.mod["eyeType"] color0 = (255,255,255) color1 = (0,0,0) radius = (self.mod["eyeSkill"] + 2) * 3 color = skinColor(self.mod) # we have to determine how big the eye will be before drawing size = (radius * 2, radius * 2) rect = Rect((0,0), size) image = Surface(size) image.fill(self.colorkey) image.set_colorkey(self.colorkey) # locking the surface makes multiple drawing operations quicker image.lock() # draw the border of the eye if radius < 10: steps = 16 else: steps = 8 for t in range(0,360,steps): t = radians(t) new_color = Color(color.r, color.g, color.b) h, s, v, a = new_color.hsva v = int(sin(t) * 50) + 50 if v < 0: v = 0 - v new_color.hsva = (h, s, v, a) x = int(rect.centerx + cos(t) * (radius - 4)) y = int(rect.centery + sin(t) * (radius - 4)) draw.circle(image, new_color, (x, y), 3) # draw the white and pupil draw.circle(image, color0, rect.center, radius - 3) draw.circle(image, color1, rect.center, (radius - 3) / 3) image.unlock() rect.center = pos self.rect = rect self.image = image
def _get_slide_rect(self): slide_rect = Rect((0, 0), (self._height, self._length)) slide_rect.center = self.get_fus_rect().center return slide_rect
def _get_slide_rect(self): slide_rect = Rect((0, 0), (self._height, self._length)) slide_rect.center = self.get_fus_rect().center return slide_rect