示例#1
0
文件: __init__.py 项目: kalail/Game
class Bot(GameObject):
    """Bot

    Basic tier 1 unit.

    """

    fire_rate = 3.0
    fire_dist = 20
    movement_speed = 60.0 

    def __init__(self, position):
        super(Bot, self).__init__('assets/circle.png', position)
        self._fire_timer = Timer(Bot.fire_rate)

    def _fire(self, position):
        diff_x = position[0] - self.position[0]
        diff_y = position[1] - self.position[1]
        aim = helpers.normalize((diff_x, diff_y))
        l = Bot.fire_dist
        fire_pos = (self.position[0] + aim[0] * l, self.position[1] + aim[1] * l)
        return Pulse(position=fire_pos, direction=aim)
    
    def fire(self, position):
        if self._fire_timer.check():
            self._fire_timer.reset()
            return self._fire(position)
        return []

    def update(self, delta, **kwargs):
        self._fire_timer.update(delta)
        dist = Bot.movement_speed * delta
        self.move(dist, 0)
        targets = [(400, 400), (200, 200), (300, 300)]
        if targets:
            target = random.choice(targets)
            shot = self.fire(target)
        if shot:
            return [shot]
        return []

    def __str__(self):
        return 'Bot'