VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • 手把手教你用Python实现“坦克大战”,附详细代码!(2)

EnemyTank(left20self.window) 27            TankGame.enemy_tank_list.append(enemy_tank) 28 29    def creat_walls(self): 30        for i in range(SCREEN_WIDTH // 60 + 1): 31            wall_h = random.randint(100500) 32            w = Wall(60 * i, wall_h, self.window) 33            TankGame.wall_list.append(w) 34 35    @staticmethod 36    def show_walls(): 37        for w in TankGame.wall_list: 38            if w.live: 39                w.display_wall() 40            else: 41                TankGame.wall_list.remove(w) 42 43    def start_game(self): 44        load_music( start ) 45        while True: 46            self.window.fill([000]) 47            self.get_event() 48            len_enemy = len(TankGame.enemy_tank_list) 49            self.window.blit( 50                self.draw_text( 敌方坦克*{0},我方生命值*{1},当前{2}关 .format(len_enemy, self.my_tank_lift, self.number)), (1010)) 51            if len_enemy == 0: 52                self.creat_enemy_number += 10 53                self.number += 1 54                self.my_tank_lift += 1 55                self.creat_enemy(self.creat_enemy_number) 56                self.wall_list.clear() 57                self.creat_walls() 58            self.show_my_tank() 59            self.show_enemy_tank() 60            self.show_bullet(TankGame.enemy_bullet_list) 61            self.show_bullet(TankGame.my_bullet_list) 62            self.show_walls() 63            self.display.update() 64            time.sleep(0.02) 65 66    def show_my_tank(self): 67        if self.my_tank.live: 68            self.my_tank.display() 69            self.my_tank.tank_collide_tank() 70            self.my_tank.tank_collide_wall() 71        else: 72            Explode(self.my_tank, self.window).display_explode() 73            del self.my_tank 74            if self.my_tank_lift == 0: 75                self.end_game() 76            self.my_tank_lift -= 1 77            load_music( add ) 78            self.my_tank = MyTank(MY_BIRTH_LEFTMY_BIRTH_TOPself.window) 79        if not self.my_tank.move_stop: 80            self.my_tank.move(self.my_tank.direction) 81 82    def show_enemy_tank(self): 83        for e in TankGame.enemy_tank_list: 84            e.random_move() 85            e.tank_collide_wall() 86            if e.live: 87                e.display() 88            else: 89                TankGame.enemy_tank_list.remove(e) 90                Explode(e, self.window).display_explode() 91            e.random_fire() 92 93    def show_bullet(self, ls): 94        for b in ls: 95            b.bullet_move() 96            b.bullet_collide_wall() 97            if ls is TankGame.my_bullet_list: 98                b.hit_enemy_tank() 99                b.bullet_collide_bullet() 100            else: 101                b.hit_my_tank(self.my_tank) 102            if b.live: 103                b.display_bullet() 104            else: 105                ls.remove(b) 106 107    def get_event(self): 108        global SCREEN_WIDTHSCREEN_HEIGHT 109        event_list = pygame.event.get() 110        for event in event_list: 111            if event.type == pygame.VIDEORESIZE: 112                SCREEN_WIDTHSCREEN_HEIGHT = event.size 113                self.window = self.display.set_mode([SCREEN_WIDTHSCREEN_HEIGHT], pygame.RESIZABLE32) 114 115            if event.type == pygame.QUIT: 116                self.end_game() 117            if event.type == pygame.KEYDOWN: 118                if event.key == pygame.K_w: 119                    self.my_tank.direction = U 120                elif event.key == pygame.K_s: 121                    self.my_tank.direction = D 122                elif event.key == pygame.K_a: 123                    self.my_tank.direction = L 124                elif event.key == pygame.K_d: 125                    self.my_tank.direction = R 126                else: 127                    return None 128                self.my_tank.move_stop = False 129            elif event.type == pygame.MOUSEBUTTONDOWN: 130                if len(TankGame.my_bullet_list) < 3: 131                    bullet = self.my_tank.fire() 132                    load_music( fire ) 133                    TankGame.my_bullet_list.append(bullet) 134            elif event.type == pygame.KEYUP: 135                self.my_tank.move_stop = True 136 137    def end_game(self): 138        self.display.quit() 139        sys.exit() 140 141    def draw_text(self, content): 142        text_sf = self.font.render(content, True, [25500]) 143        return text_sf

10. 入口

1if __name__ ==  __main__ :
2    g = TankGame()
3    g.start_game()

执行界面


相关教程
关于我们--广告服务--免责声明--本站帮助-友情链接--版权声明--联系我们       黑ICP备07002182号