예제 #1
0
    def draw(self):
        Actor.draw(self)
        if self.world.debug_mode:
            pt = self.world.camera.offset(self.pos)
            pygame.draw.circle(self.world.screen, COLOR_WHITE,
                               (int(pt.x), int(pt.y)), 3)

            pygame.draw.circle(
                self.world.screen, COLOR_BLACK, (int(pt.x), int(pt.y)),
                int(PLAYER_DETECTION_LENGTH * self.world.camera.zoom), 1)
예제 #2
0
파일: player.py 프로젝트: Zax37/Zombie2D
 def draw(self):
     Actor.draw(self)
     if self.world.debug_mode:
         action_point_rotated = self.action_point.rotate(self.angle)
         point = self.world.camera.offset(self.pos + action_point_rotated)
         pygame.draw.circle(self.world.screen, COLOR_WHITE, (int(point.x), int(point.y)), 3)
         if self.was_tagged:
             pt = self.world.camera.offset(self.pos)
             pygame.draw.circle(self.world.screen, COLOR_RED, (int(pt.x), int(pt.y)),
                                int(self.size * self.world.camera.zoom))
             self.was_tagged = False
예제 #3
0
 def draw(self, screen, viewport):
     if not self.picked:
         Actor.draw(self, screen, viewport)
예제 #4
0
class Block(Actor):
    def __init__(self, position, mode=1):
        super(Block, self).__init__(position)

        self.mode = mode

        self.set_image(game.get_image('block_red'))

        self.icon = Actor((64, 64))
        self.icon.set_image(game.get_image('icon_%s' % self.mode))

        self.state = 'input'
        self.state_time = 0
        self.target = np.array((0, 0))
        self.start_position = np.array((0, 0))

    def update(self, delta):
        super(Block, self).update(delta)

        self.icon.update(delta)

        if self.state == 'move':
            self.position = util.lerp(self.start_position, self.target,
                                      self.state_time)

            self.state_time += 2 * delta

            if self.state_time >= 1:
                self.set_state('wait')
        elif self.state == 'remove':
            self.position[1] += delta * 64
            if self.state_time >= 1:
                self.is_active = False

            self.state_time += delta

    def draw(self, surface):
        if not self.is_active: return

        self.rect.center = self.position
        self.rect.centery = self.position[1] - 8 * np.sin(
            self.position[0] / 64)

        self.surface.fill(pg.Color(0, 0, 0, 0))

        self.surface.blit(self.image, self.image_rect)

        self.icon.draw(self.surface)

        surface.blit(self.surface, self.rect)

    def increase_mode(self, n):
        self.mode = (self.mode + n) % 3
        self.icon.set_image(game.get_image('icon_%s' % self.mode))

    def set_target(self, target):
        self.target = np.array(target)

    def set_state(self, new_state):
        previous_state = self.state
        self.state = new_state

        if new_state == 'move':
            self.start_position = self.position

        if previous_state == 'move':
            self.position = self.target

        self.state_time = 0
예제 #5
0
 def draw(self, window):
     """
     Draws the player
     """
     Actor.draw(self, window)
     self.image = self.sprite_idle