Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
    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()])
Exemplo n.º 4
0
    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
Exemplo n.º 5
0
 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)
Exemplo n.º 6
0
Arquivo: mob.py Projeto: MacLeek/mh
    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
Exemplo n.º 7
0
 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
Exemplo n.º 8
0
 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