Exemple #1
0
 def __init__(self, colour, respawnpoint, algorithm, visible=True):
     pygame.sprite.Sprite.__init__(self, self.containers)
     self.image = self.images[colour * 6]
     self.rect = self.image.get_rect()
     x = GameData.battleground[
         GameData.battlegroundnr].respawnpoints[respawnpoint][0] + 6
     y = GameData.battleground[
         GameData.battlegroundnr].respawnpoints[respawnpoint][1] + 4
     angle = GameData.battleground[
         GameData.battlegroundnr].respawnpoints[respawnpoint][2]
     newpos = self.rect.move((x, y))
     self.rect = newpos
     self.colour = colour
     self.algorithm = algorithm
     self.visible = visible
     self.angle = angle
     self.gear = 0
     self.bullets = 0
     self.deaths = 0
     self.kills = 0
     self.state = 0
     self.command_queue = []
     self.original = self.image
     center = self.rect.center
     rotate = pygame.transform.rotate
     self.image = rotate(self.original, self.angle)
     self.rect = self.image.get_rect(center=center)
     self.x = self.rect.left
     self.y = self.rect.top
     self.gun_cooldown = GameData.bulletloadtime
     self.gear_cooldown = GameData.gearcooldown
     # display tank on scoreboard
     self.icon_display = TankCopy(self.colour)
     if pygame.font:
         self.kills_display = Score("kills      : %d", "orange", 870,
                                    190 + self.colour * 75)
         self.deaths_display = Score("deaths : %d", "red", 870,
                                     222 + self.colour * 75)
     # Make A.I. tanks come out of their spawn point at the start of a new game
     if self.colour <> GameData.red:
         self.command_queue = []
         for i in range(0, 20):
             self.command_queue.append("up")
             self.command_queue.append("shoot")
         self.command_queue.append("flush")
Exemple #2
0
    def __init__(self, colour, respawnpoint, algorithm, visible=True):
        #делаем спрайтом
        pygame.sprite.Sprite.__init__(self, self.containers)
        #подгружаем нужную картинку
        self.image = self.images[colour * 6]
        #помещаем в прямоугольник
        self.rect = self.image.get_rect()
        # в респаун на последнее поля боя с нужным углом
        x = GameData.battleground[
            GameData.battlegroundnr].respawnpoints[respawnpoint][0] + 6
        y = GameData.battleground[
            GameData.battlegroundnr].respawnpoints[respawnpoint][1] + 4
        angle = GameData.battleground[
            GameData.battlegroundnr].respawnpoints[respawnpoint][2]
        #ставим танк спомощью move((x, y))
        newpos = self.rect.move((x, y))
        self.rect = newpos
        #сохраняем здесь цвет, переданный этому танку-спрайту(может и синий,а может и красный)
        self.colour = colour
        #алгоритм
        self.algorithm = algorithm
        #делаем видимым
        self.visible = visible
        #его ориентация в 2D
        self.angle = angle
        #пока он стоит на месте = нулевая передача
        self.gear = 0
        #не стрелял
        self.bullets = 0
        #не умирал
        self.deaths = 0
        #не убивал
        self.kills = 0
        #вначале он отображается и на окне заставки(можно убрать)
        self.state = 0
        #заводим для него очередь команд
        self.command_queue = []
        #распологаем его правильно в респауне, по параметру self.angle ставим спиной к стене
        self.original = self.image
        center = self.rect.center
        rotate = pygame.transform.rotate
        self.image = rotate(self.original, self.angle)
        self.rect = self.image.get_rect(center=center)
        self.x = self.rect.left
        self.y = self.rect.top
        #передача и нагрев для танка
        self.gun_cooldown = GameData.bulletloadtime
        self.gear_cooldown = GameData.gearcooldown

        # отображение танка на панели очков
        #делаем копию танкатого же цвета
        self.icon_display = TankCopy(self.colour)
        #в пустом цикле
        if pygame.font:
            #отображаем число смертей и число убитых танков
            self.kills_display = Score("kills      : %d", "orange", 870,
                                       190 + self.colour * 75)
            self.deaths_display = Score("deaths : %d", "red", 870,
                                        222 + self.colour * 75)
        # создаём ботов в их респаунах в начале игры
        #если не красныйтанк
        if self.colour != GameData.red:
            #передаём очередь команд
            self.command_queue = []
            #и здесь самый простеший "искусственный интелект" говорящий,как выйти боту из респауна
            for i in range(0, 20):
                #вверх
                self.command_queue.append("up")
                #стрельни
                self.command_queue.append("shoot")
            #стой
            self.command_queue.append("flush")