利用python中的pygame模块开发fc坦克大战(可自定义地图,包括部分素材)

刚开始学习计算机,代码写的良莠不齐,多担待哈。


这个资源积分我自己修改不了,没办法,想直接要代码和素材的朋友请qq我:1638179220,欢迎。


**

游戏效果图:

在这里插入图片描述
**

pygame—坦克大战

大体分为10个模块:

button.py

'''游戏按钮模块'''

import pygame


class Button():

    def __init__(self,screen,msg):

        '''初始化按钮属性'''
        self.screen = screen
        self.msg = msg
        #设置按钮的尺寸和其它属性
        self.width = 200
        self.height = 50
        self.button_color = (0,255,0)
        self.text_color = (255,255,255)
        self.font = pygame.font.Font("C:/Windows/Fonts/SIMHEI.TTF",30)

        #创建按钮的矩形对象
        self.rect = pygame.Rect(0,0,self.width,self.height)
        self.rect.center = (450,300)
        
        #创建按钮的标签
        self.prep_msg(self.msg)

    def prep_msg(self,msg):
        '''将msg渲染成为图像,并使其在按钮上居中'''

        self.msg_image = self.font.render(msg,True,self.text_color,self.button_color)
        self.msg_image_rect = self.msg_image.get_rect()

    def draw_button(self):
        #绘制一个用颜色填充的按钮,再绘制文本
        self.screen.fill(self.button_color,self.rect)
        self.screen.blit(self.msg_image,(self.rect.x+40,self.rect.y+10))

customize_wall.py

'''自定义地图模块'''

import pygame
from pygame.sprite import Sprite

class Walls(Sprite):

    def __init__(self,screen):

        self.customize = False
        Sprite.__init__(self)
        self.screen = screen
        self.stop = False
        self.step = 0
        self.images = [pygame.image.load("imgs\\wall\\1.gif"), \
                       pygame.image.load("imgs\\wall\\2.gif"), \
                       pygame.image.load("imgs\\wall\\3.gif"), \
                       pygame.image.load("imgs\\wall\\4.gif"), \
                       pygame.image.load("imgs\\wall\\5.gif"), \
                       pygame.image.load("imgs\\wall\\7.gif"), \
                       pygame.image.load("imgs\\wall\\8.png")]
        self.speed = 1 
        self.image = self.images[self.step]
        self.rect = self.image.get_rect()
        self.rect.x = 68
        self.rect.y = 40
        self.screen.blit(self.image,self.rect)

    def update(self):
        
        self.image = self.images[self.step]
        self.screen.blit(self.image,self.rect)
    def move_up(self):
        if not self.stop:
            self.rect.y -= self.speed
    def move_under(self):
        if not self.stop:
            self.rect.y += self.speed
    def move_left(self):
        if not self.stop:
            self.rect.x -= self.speed
    def move_right(self):
        if not self.stop:
            self.rect.x += self.speed
    def no_screen(self):
        if self.rect.x <= 68:
            self.rect.x = 68
        if self.rect.x >= 1008:
            self.rect.x = 1008
        if self.rect.y <= 40:
            self.rect.y = 40
        if self.rect.y >= 650:
            self.rect.y = 650

game_interface.py

'''游戏开始前背景图片更换模块'''

import pygame

class Game_interface():

    def __init__(self,screen,msg,rect):

        self.screen = screen
        self.images = [pygame.image.load("imgs\\q.jpg"), \
                       pygame.image.load("imgs\\w.jpg"), \
                       pygame.image.load("imgs\\e.jpg"), \
                       pygame.image.load("imgs\\r.jpg"), \
                       pygame.image.load("imgs\\t.jpg"), \
                       pygame.image.load("imgs\\y.jpg"), \
                       pygame.image.load("imgs\\314662.jpg"), \
                       pygame.image.load("imgs\\306745.jpg"), \
                       pygame.image.load("imgs\\271039.jpg"), \
                       pygame.image.load("imgs\\279861.jpg")]
        self.step = 0
        self.width = 450
        self.height = 50
        self.interface_color = (0,255,0)
        self.text_color = (255,255,255)
        self.size = 30
        self.len = len(msg)
        self.font = pygame.font.Font("C:/Windows/Fonts/SIMHEI.TTF",self.size)

        #创建按钮的矩形对象
        self.rect = pygame.Rect(0,0,self.width,self.height)
        self.rect.center = rect
        #创建按钮的标签
        self.prep_msg(msg)
        self.draw_interface()

    def prep_msg(self,msg):
        '''将msg渲染成为图像,并使其在界面上居中'''
        self.msg_image = self.font.render(msg,True,self.text_color,self.interface_color)
        self.msg_image_rect = self.msg_image.get_rect()

    def draw_interface(self):
        #绘制一个用颜色填充的按钮,再绘制文本
        self.screen.fill(self.interface_color,self.rect)
        self.screen.blit(self.msg_image,(self.rect.x+(self.width-self.len*self.size)/2,self.rect.y+(self.height-self.size)/2))

    def screen_bg(self):
        if self.step == len(self.images):
            self.step = 0
        else:
            self.image = self.images[self.step]
            self.time = pygame.time.delay(700)
            self.screen.blit(self.image,(0,0))
            pygame.display.update()
            self.step += 1

home.py

'''坦克保护的老家模块'''

import pygame
from pygame.sprite import Sprite

class Home(Sprite):

    def __init__(self,screen):

        Sprite.__init__(self)
        self.screen = screen
        self.screen_rect = self.screen.get_rect()
        self.live = True
        self.images = [pygame.image.load("imgs\\symbol.gif"),pygame.image.load("imgs\\destory.gif")]
        self.step = 0

    def draw_home(self):
        if self.live:
            self.image1 = self.images[self.step]
            self.rect = self.image1.get_rect()
            self.rect.width = 60
            self.rect.height = 45
            self.rect.x = 500
            self.rect.y = 665
            self.screen.blit(self.image1,self.rect)
        if not self.live:
            self.image2 = self.images[self.step+1]
            self.rect = self.image2.get_rect()
            self.rect.width = 60
            self.rect.height = 45
            self.rect.x = 500
            self.rect.y = 665
            self.screen.blit(self.image2,self.rect)

tank_buff.py

'''坦克buff模块'''

import random
import pygame
from pygame.sprite import Sprite

class Tank_buff(Sprite):

    def __init__(self,screen):

        Sprite.__init__(self)
        self.screen = screen
        self.random_image()

    def random_image(self):
        r = random.randint(0,2)
        if r == 0:
            self.m = 0
            self.image = pygame.image.load("imgs\\timer.gif")
            self.rect = self.image.get_rect()
            self.rect.x = random.randint(68,1000)
            self.rect.y = random.randint(40,750)
        if r == 1:
            self.m = 1
            self.image = pygame.image.load("imgs\\star.gif")
            self.rect = self.image.get_rect()
            self.rect.x = random.randint(68,1000)
            self.rect.y = random.randint(40,750)
        if r == 2:
            self.m = 2
            self.image = pygame.image.load("imgs\\bomb.gif")
            self.rect = self.image.get_rect()
            self.rect.x = random.randint(68,1000)
            self.rect.y = random.randint(40,750)

tank_bullet.py

'''坦克子弹模块'''

import pygame

from pygame.sprite import Sprite

class Bullet(Sprite):

    def __init__(self,screen,direction,image,tank_hero):

        Sprite.__init__(self)
        self.screen = screen
        self.image = pygame.image.load(image)
        self.direction = direction
        self.rect = self.image.get_rect()
        self.speed = 5
        self.live = True
        self.moving = False
        if self.direction == "top":
            self.rect.x = tank_hero.rect.x+23
            self.rect.y = tank_hero.rect.y-5
        elif self.direction == "under":
            self.rect.x = tank_hero.rect.x+23
            self.rect.y = tank_hero.rect.y+60
        elif self.direction == "right":
            self.rect.x = tank_hero.rect.x+60
            self.rect.y = tank_hero.rect.y+23
        elif self.direction == "left":
            self.rect.x = tank_hero.rect.x
            self.rect.y = tank_hero.rect.y+23

    def moving_t(self):
        self.rect.y -= self.speed
    def moving_l(self):
        self.rect.x -= self.speed
    def moving_r(self):
        self.rect.x += self.speed
    def moving_u(self):
        self.rect.y+= self.speed

tank_enemy.py

'''敌方坦克模块'''

import random
import pygame
from pygame.sprite import Sprite

#敌方坦克类
class Tank_enemy(Sprite):

    def __init__(self,screen,image,speed):

        Sprite.__init__(self)
        self.screen = screen
        self.direction = "a"
        self.o = 2
        #坦克移动的速度
        self.speed = speed
        #坦克按照某个方向移动的步数
        self.step = 120
        self.y = 0
        self.first = 1
        self.limit = 1
        if self.direction == "a":
            self.image = pygame.image.load(image)
        self.moving_up = True
        self.moving_down = True
        self.moving_right = True
        self.moving_left = True
        #坦克的图片由方向决定
        self.rect = self.image.get_rect()
        self.rect.x = random.choice((68,538,1008))
        self.rect.y = 40
        self.image1 = self.image
        self.live = True
        self.get_random()
    
    def direction_move(self):
        if self.direction == "a":
            self.image = self.image1
        elif self.direction == "w":
            if self.first > 0:
                self.first -= 1
                self.image = pygame.transform.rotate(self.image1,270)
        elif self.direction == "s":
            if self.first > 0:
                self.first -= 1
                self.image = pygame.transform.rotate(self.image1,90)
        elif self.direction == "d":
            if self.first > 0:
                self.first -= 1
                self.image = pygame.transform.rotate(self.image1,180)

        
    def get_random(self):
      
        r = random.randint(0,3)
        if r == 1:
            self.direction = "d"
            self.moving_right = True

        elif r == 2:
            self.direction = "w"
            self.moving_up = True
        elif r == 3:
            self.direction = "a"
            self.moving_left =True
            
        elif r == 0:
            self.direction = "s"
            self.moving_down = True
            
    def move(self):
        if self.direction == "a":
            if self.moving_left:
                if self.rect.x <= 68:
                    self.rect.x = 68                            
                else:
                    self.rect.x -= self.speed
                    self.direction_move()
                    
        elif self.direction == "d":
            if self.moving_right:
                if self.rect.x >= 1008:
                    self.rect.x = 1008
                else:
                    self.rect.x += self.speed
                    self.direction_move()
                    
        elif self.direction == "w":
            if self.moving_up:
                if self.rect.y <= 40:
                    self.rect.y = 40
                else:
                    self.rect.y -= self.speed
                    self.direction_move()
                    
        elif self.direction == "s":
            if self.moving_down:
                if self.rect.y >= 650:
                    self.rect.y = 650
                else:
                    self.rect.y += self.speed
                    self.direction_move()
                    
    #敌方坦克,按照一个确定的随机方向,连续移动六步,才能再次改变方向 
    def enemy_random_move(self):
        if self.live:
            if self.step == 0:
                self.first = 1
                self.get_random()
                self.step = 120
            else:
                self.move()
                self.step -= 1

class Tank_twinkle(Sprite):

    def __init__(self,screen):
        Sprite.__init__(self)
        self.step1 = 0
        self.step = 1
        self.get_random()
        self.y = 5
        self.o = 1
        self.screen = screen
        self.images = [pygame.image.load("imgs\\enemy3L.gif"), \
                       pygame.image.load("imgs\\bianshen\\tugai.net.20101117235357.gif"), \
                       pygame.image.load("imgs\\bianshen\\tugai.net.20101117235819.gif"), \
                       pygame.image.load("imgs\\bianshen\\tugai.net.20101118000029.gif")]
        self.image = self.images[self.step]
        self.rect = self.image.get_rect()
        self.rect.x = random.choice((68,538,1008))
        self.rect.y = 40
        self.live = True
        self.speed = 2
        self.limit = 3

    def direction_move(self):
        if self.direction == "a":
            self.images = [pygame.image.load("imgs\\enemy3L.gif"), \
                           pygame.image.load("imgs\\bianshen\\tugai.net.20101117235357.gif"), \
                           pygame.image.load("imgs\\bianshen\\tugai.net.20101117235819.gif"), \
                           pygame.image.load("imgs\\bianshen\\tugai.net.20101118000029.gif")]
            self.twinkle()
        elif self.direction == "w":
            self.images = [pygame.image.load("imgs\\enemy3U.gif"), \
                           pygame.image.load("imgs\\bianshen\\tugai.net.20101117235441.gif"), \
                           pygame.image.load("imgs\\bianshen\\tugai.net.20101117235923.gif"), \
                           pygame.image.load("imgs\\bianshen\\tugai.net.20101118000114.gif")]
            self.twinkle()
        elif self.direction == "s":
            self.images = [pygame.image.load("imgs\\enemy3D.gif"), \
                           pygame.image.load("imgs\\bianshen\\tugai.net.20101117235303.gif"), \
                           pygame.image.load("imgs\\bianshen\\tugai.net.20101117235754.gif"), \
                           pygame.image.load("imgs\\bianshen\\tugai.net.20101117235941.gif")]
            self.twinkle()
        elif self.direction == "d":
            self.images = [pygame.image.load("imgs\\enemy3R.gif"), \
                           pygame.image.load("imgs\\bianshen\\tugai.net.20101117235418.gif"), \
                           pygame.image.load("imgs\\bianshen\\tugai.net.20101117235843.gif"), \
                           pygame.image.load("imgs\\bianshen\\tugai.net.20101118000048.gif")]
            self.twinkle()
            
    def get_random(self):
        r = random.randint(0,3)
        if r == 1:
            self.direction = "d"
            self.moving_right = True
        elif r == 2:
            self.direction = "w"
            self.moving_up = True
        elif r == 3:
            self.direction = "a"
            self.moving_left =True
        elif r == 0:
            self.direction = "s"
            self.moving_down = True

    def move(self):
        if self.direction == "a":
            if self.moving_left:
                if self.rect.x <= 68:
                    self.rect.x = 68      
                else:
                    self.rect.x -= self.speed
                    self.direction_move()
        elif self.direction == "d":
            if self.moving_right:
                if self.rect.x >= 1008:
                    self.rect.x = 1008
                else:
                    self.rect.x += self.speed
                    self.direction_move()
                    
        elif self.direction == "w":
            if self.moving_up:
                if self.rect.y <= 40:
                    self.rect.y = 40
                else:
                    self.rect.y -= self.speed
                    self.direction_move()
                    
        elif self.direction == "s":
            if self.moving_down:
                if self.rect.y >= 650:
                    self.rect.y = 650
                else:
                    self.rect.y += self.speed
                    self.direction_move()

    #敌方坦克,按照一个确定的随机方向,连续移动六步,才能再次改变方向 
    def enemy_random_move(self):
        if self.live:
            if self.step == 0:
                self.step1 = 0
                self.get_random()
                self.step = 120
            else:
                self.move()
                self.step -= 1
        
    def twinkle(self):
        if self.step1 == len(self.images)-1:
            self.step1 = 0
        else:
            self.image = self.images[self.step1]
            self.screen.blit(self.image,self.rect)
            pygame.display.update()
            self.step1 += 1

tank_explode.py

'''爆炸模块'''

import pygame

import time

class Explode():

    def __init__(self,screen,rect):

        self.live = True
        self.images = [pygame.image.load("imgs\\blast1.gif"), \
                       pygame.image.load("imgs\\blast2.gif"), \
                       pygame.image.load("imgs\\blast3.gif"), \
                       pygame.image.load("imgs\\blast4.gif"), \
                       pygame.image.load("imgs\\blast5.gif"), \
                       pygame.image.load("imgs\\blast6.gif"), \
                       pygame.image.load("imgs\\blast7.gif"), \
                       pygame.image.load("imgs\\blast8.gif")]
        self.screen = screen
        #坦克爆炸位置
        self.rect = rect
        self.step = 0

    #在整个游戏过程中,循环使用,每隔0.05秒调用一次
    def update(self):
        if self.live:
            #最后一张爆炸图片已经显示了
            if self.step == len(self.images):
                self.live = False
            else:                
                self.image = self.images[self.step]                
                self.screen.blit(self.image,(self.rect.x-30,self.rect.y-30))
                pygame.display.update()                
                self.step += 1
        else:
            return
        #删除该对象

tank_hero.py

'''己方坦克模块'''

import pygame
from pygame.sprite import Sprite
'''定义一个坦克英雄类'''
import pygame.font

class Tank_hero(Sprite):

    #初始化方法
    def __init__(self,screen,speed,image,x,y):

        Sprite.__init__(self)
        self.screen = screen
        self.screen_rect = self.screen.get_rect()
        self.image = pygame.image.load(image)
        self.rect = self.image.get_rect()
        self.rect.x = x
        self.rect.y = y
        self.life_limit = 3
        self.live1 = True
        self.live2 = False
        self.live3 = False
        self.live4 = False
        self.stop = False
        self.speed = speed
        self.font = pygame.font.SysFont(None,22)
        self.a = 1
        self.moving_up = True
        self.moving_down = True
        self.moving_right = True
        self.moving_left = True
        self.direction = "w"
        self.x = 1098
        self.y = 600
        self.color = (245,169,21)
        
    def transform_image_up(self,image):
        self.image = pygame.image.load(image)
    def transform_image_under(self,image):
        self.image = pygame.image.load(image)
    def transform_image_right(self,image):
        self.image = pygame.image.load(image)
    def transform_image_left(self,image):
        self.image = pygame.image.load(image)

    def move_up(self):
        self.rect.y -= self.speed
    def move_under(self):
        self.rect.y += self.speed
    def move_right(self):
        self.rect.x += self.speed
    def move_left(self):
        self.rect.x -= self.speed
    def no_screen(self):
        if self.rect.x <= 68:
            self.rect.x = 68
        if self.rect.x >= 1008:
            self.rect.x = 1008
        if self.rect.y <= 40:
            self.rect.y = 40
        if self.rect.y >= 650:
            self.rect.y = 650
            
    def residue_tank(self):
        if self.live1:
            self.tank_image = self.font.render(" X 3",True,self.color,(145,145,145))
        if self.live2:
            self.tank_image = self.font.render(" X 2",True,self.color,(145,145,145))
        if self.live3:
            self.tank_image = self.font.render(" X 1",True,self.color,(145,145,145))
        if self.live4:
            self.tank_image = self.font.render(" X 0",True,self.color,(145,145,145))
        self.screen.blit(self.tank_image,(self.x,self.y))    

tank_war_main.py

'''坦克大战游戏'''

import random
import time
import pygame
import sys
from tank_hero import Tank_hero
from tank_bullet import Bullet
from button import Button
from tank_explode import Explode
from tank_enemy import Tank_enemy,Tank_twinkle
from game_interface import Game_interface
from home import Home
from customize_wall import Walls
from tank_buff import Tank_buff
import time


class Tank_war_main():

    '''初始化属性和方法'''
    def __init__(self):
        pygame.init()
        #播放开始音乐
        self.music = True
        #创建一个屏幕对象
        self.screen = pygame.display.set_mode((1136,750))
        #游戏名字
        self.caption = pygame.display.set_caption("坦克大战增强版")
        #背景颜色
        self.bg_color = (30,30,90)
        #非是游戏活动状态
        self.game_active = False
        #敌方坦克限制数量
        self.enemy_tank_limit = 30
        #闪烁坦克限制数量
        self.enemy_tank_limit1 = 5
        #游戏灰色边框图片
        self.bg_1 = pygame.image.load("imgs\\1-3.png")
        self.bg_2 = pygame.image.load("imgs\\1-2.png")
        #坦克出生显示的图片
        self.start1 = pygame.image.load("imgs\\born1.png")
        self.start2 = pygame.image.load("imgs\\born2.png")
        self.start3 = pygame.image.load("imgs\\born3.png")
        self.start4 = pygame.image.load("imgs\\born4.png")
        self.home_wall = True
        #定义定时器常量(敌方坦克)
        self.EVENT_ENEMY = pygame.USEREVENT
        self.event = pygame.USEREVENT + 1
        pygame.time.set_timer(self.event,5000)
        pygame.time.set_timer(self.EVENT_ENEMY,1000)
        #敌方坦克移动
        self.enemy_move = True
        #生成一个时钟对象
        self.clock = pygame.time.Clock()
        #循环播放音乐
        self.file2 = "music\林俊杰 - 进阶.mp3"
        self.bg_music = pygame.mixer.music.load(self.file2)
        #pygame.mixer.music.play(-1)
        #初始化游戏元素
        self.game_element()
        #执行游戏主循环
        self.loop()
        
    '''游戏主循环方法'''
    def loop(self):
        #生成一个背景图片对象,以便用于刚开始背景图像的绘制
        self.screen_bg = Game_interface(self.screen,"..",(-400,-400))
        while True:
            #设置帧率
            self.clock.tick(120)
            #监听鼠标事件
            self.mouse_check()
            #不是游戏活动状态
            if not self.game_active:
                #绘制按钮
                self.bg_button()
                #绘制背景图
                self.screen_bg.screen_bg()
            #游戏活动状态
            if self.game_active:
                #碰撞检测
                self.collide_check()
                #监听键盘事件
                self.keyboard_check()
                #不能让坦克英雄1移动到屏幕外面
                self.tank_hero1.no_screen()
                self.tank_hero2.no_screen()
                #用于碰撞墙壁所造成的不能移动
                self.tank_moving()
                #英雄坦克移动
                self.bullets_moving()
                #这个是buff定时时使用
                if self.enemy_move:
                    #敌人移动
                    self.enemy_tank_move()
                    #敌人子弹移动
                    self.enemy_tank_bullet_move()
                #绘制图片
                self.draw_image()
                #刷新显示
                self.update()
                #不是造墙的时候跳到背景图像切换
                if not self.home.live:
                    self.game_active = False

            
    '''按钮点击和坦克英雄发射子弹事件方法'''
    def mouse_check(self):
        #如果一直按着一个键的时候会返回布尔类型True,反之
        key_pressed = pygame.key.get_pressed()
        #获取所有的游戏事件
        for event in pygame.event.get():
            #游戏退出
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
            #敌方坦克定时的时间
            if event.type == self.event:
                self.enemy_move = True
            #监听鼠标事件
            if event.type == pygame.MOUSEBUTTONDOWN:
                #获取鼠标点击的位置
                mouse_x,mouse_y = pygame.mouse.get_pos()
                #判断鼠标点击的位置是否是开始按钮的位置
                if self.play_button.rect.collidepoint(mouse_x,mouse_y):
                    self.game_active = True
                    self.home.live = True
                    self.home.wall = True
                    self.wall.customize = False
                    #播放开始音乐(初始化的时候是True)所以会播放一次(其它的时候是False)
                    if self.music:
                        file1 = "music\start.wav"
                        start_music = pygame.mixer.Sound(file1)
                        start_music.play()    
                #判断鼠标点击的位置是否是游戏说明的按钮
                if self.description_button.rect.collidepoint(mouse_x,mouse_y):
                    #显示游戏说明
                    self.game_description_interface()
                    #停留9秒
                    self.screen_bg.time = pygame.time.delay(9000)
                #判断鼠标点击的位置是否是自定义地图的按钮
                if self.customize_map_button.rect.collidepoint(mouse_x,mouse_y):
                    self.home_wall = False
                    self.game_active = True
                    #初始化敌方坦克数量
                    self.enemy_tank_limit = 30
                    self.enemy_tank_limit1 = 5
                    self.game_element()
                    self.wall.customize = True
                    self.init()
            if self.game_active:
                '''定时器'''
                #敌方坦克定时出现
                if self.home_wall:
                    if event.type == self.EVENT_ENEMY:
                        if len(self.enemy_list) < 4:
                            if self.enemy_tank_limit > 0:
                                new_enemy_tank1 = Tank_enemy(self.screen,"imgs\\enemy1l.gif",2)
                                new_enemy_tank1.y = 1  
                                self.born_image(new_enemy_tank1)
                                self.enemy_list.add(new_enemy_tank1)
                                self.enemy_tank_limit -= 1
                            if self.enemy_tank_limit > 0:
                                new_enemy_tank2 = Tank_enemy(self.screen,"imgs\\enemy2L.gif",3)
                                new_enemy_tank2.y = 2
                                self.born_image(new_enemy_tank2)
                                self.enemy_list.add(new_enemy_tank2)
                                self.enemy_tank_limit -= 1
                            if self.enemy_tank_limit > 0:
                                new_enemy_tank3 = Tank_enemy(self.screen,"imgs\\enemy3L.gif",2)
                                new_enemy_tank3.y = 5
                                self.born_image(new_enemy_tank3)
                                self.enemy_list.add(new_enemy_tank3)
                                self.enemy_tank_limit -= 1
                            if len(self.enemy_list) == 3 and self.enemy_tank_limit1 > 0:
                                new_enemy_tank_twinkle = Tank_twinkle(self.screen)
                                self.born_image(new_enemy_tank_twinkle)
                                self.born_image(new_enemy_tank_twinkle)
                                self.enemy_list.add(new_enemy_tank_twinkle)
                                self.enemy_tank_limit1 -= 1
                        for new_enemy_tank in self.enemy_list:
                            if new_enemy_tank.direction == "w":
                                new_enemy_bullet = Bullet(self.screen,"top","imgs\\tankmissile.gif",new_enemy_tank)
                                self.enemy_bullet_group.add(new_enemy_bullet)
                            if new_enemy_tank.direction == "s":
                                new_enemy_bullet = Bullet(self.screen,"under","imgs\\tankmissile.gif",new_enemy_tank)
                                self.enemy_bullet_group.add(new_enemy_bullet)
                            if new_enemy_tank.direction == "a":
                                new_enemy_bullet = Bullet(self.screen,"left","imgs\\tankmissile.gif",new_enemy_tank)
                                self.enemy_bullet_group.add(new_enemy_bullet)
                            if new_enemy_tank.direction == "d":
                                new_enemy_bullet = Bullet(self.screen,"right","imgs\\tankmissile.gif",new_enemy_tank)
                                self.enemy_bullet_group.add(new_enemy_bullet)              
            if event.type == pygame.KEYDOWN:
                if self.wall.customize:
                    if event.key == pygame.K_j:
                        self.new_wall = Walls(self.screen)
                        self.new_wall.rect.x = self.wall.rect.x
                        self.new_wall.rect.y = self.wall.rect.y
                        self.new_wall.step = self.wall.step
                        if self.new_wall.step == 0:
                            self.new_wall.rect.width = 30
                            self.new_wall.rect.height = 30
                        if self.new_wall.step == 1:
                            self.new_wall.rect.width = 60
                            self.new_wall.rect.height = 30
                        if self.new_wall.step == 2:
                            self.new_wall.rect.width = 30
                            self.new_wall.rect.height = 60
                        if self.new_wall.step == 3:
                            self.new_wall.rect.width = 60
                            self.new_wall.rect.height = 60
                        if self.new_wall.step == 4:
                            self.new_wall.rect.width = 30
                            self.new_wall.rect.height = 30
                        if self.new_wall.step == 5 or self.new_wall.step == 6:
                            self.new_wall.rect.width = 60
                            self.new_wall.rect.height = 60
                        self.walls.add(self.new_wall)
                    if event.key == pygame.K_k:
                        self.wall.step += 1
                        if self.wall.step == 7:
                            self.wall.step = 0    
                if self.home_wall:
                    #坦克英雄一发射子弹
                    if self.tank_hero1.live1 or self.tank_hero1.live2 or self.tank_hero1.live3 :
                        if event.key == pygame.K_j and key_pressed[pygame.K_w]:
                            self.music_fire()
                            new_bullet = Bullet(self.screen,"top","imgs\\tankmissile.gif",self.tank_hero1)
                            self.bullets.add(new_bullet)
                        elif event.key == pygame.K_j and key_pressed[pygame.K_s]:
                            self.music_fire()
                            new_bullet = Bullet(self.screen,"under","imgs\\tankmissile.gif",self.tank_hero1)
                            self.bullets.add(new_bullet)
                        elif event.key == pygame.K_j and key_pressed[pygame.K_d]:
                            self.music_fire()
                            new_bullet = Bullet(self.screen,"right","imgs\\tankmissile.gif",self.tank_hero1)
                            self.bullets.add(new_bullet)
                        elif event.key == pygame.K_j and key_pressed[pygame.K_a]:
                            self.music_fire()
                            new_bullet = Bullet(self.screen,"left","imgs\\tankmissile.gif",self.tank_hero1)
                            self.bullets.add(new_bullet)
                    #坦克英雄二发射子弹
                    if self.tank_hero2.live1 or self.tank_hero2.live2 or self.tank_hero2.live3:
                        if event.key == pygame.K_0 and key_pressed[pygame.K_UP]:
                            self.music_fire()
                            new_bullet = Bullet(self.screen,"top","imgs\\tankmissile.gif",self.tank_hero2)
                            self.bullets.add(new_bullet)
                        elif event.key == pygame.K_0 and key_pressed[pygame.K_DOWN]:
                            self.music_fire()
                            new_bullet = Bullet(self.screen,"under","imgs\\tankmissile.gif",self.tank_hero2)
                            self.bullets.add(new_bullet)
                        elif event.key == pygame.K_0 and key_pressed[pygame.K_RIGHT]:
                            self.music_fire()
                            new_bullet = Bullet(self.screen,"right","imgs\\tankmissile.gif",self.tank_hero2)
                            self.bullets.add(new_bullet)
                        elif event.key == pygame.K_0 and key_pressed[pygame.K_LEFT]:
                            self.music_fire()
                            new_bullet = Bullet(self.screen,"left","imgs\\tankmissile.gif",self.tank_hero2)
                            self.bullets.add(new_bullet)
                if event.key == pygame.K_SPACE:
                    self.game_active = False
                    self.music = False
                    self.home_wall = True
        if self.wall.customize:
            key_pressed = pygame.key.get_pressed()
            if key_pressed[pygame.K_w]:
                self.wall.move_up()
            if key_pressed[pygame.K_s]:
                self.wall.move_under()
            if key_pressed[pygame.K_d]:
                self.wall.move_right()
            if key_pressed[pygame.K_a]:
                self.wall.move_left()
                
            
    '''坦克英雄移动检测方法'''
    def keyboard_check(self):
        if self.home_wall:
            key_pressed = pygame.key.get_pressed()
            for event in pygame.event.get():
                #游戏退出
                if event.type == pygame.QUIT:
                    pygame.quit()
                    sys.exit() 
            #坦克英雄一按键移动            
            if self.tank_hero1.live1 or self.tank_hero1.live2 or self.tank_hero1.live3:
                if key_pressed[pygame.K_w]:
                    if self.tank_hero1.moving_up:
                        self.tank_hero1.direction = "w"
                        self.tank_hero1.move_up()
                        self.tank_hero1.transform_image_up("imgs\\p1tankU.gif")
                elif key_pressed[pygame.K_s]:
                    if self.tank_hero1.moving_down:
                        self.tank_hero1.direction = "s"
                        self.tank_hero1.move_under()
                        self.tank_hero1.transform_image_under("imgs\\p1tankD.gif")
                elif key_pressed[pygame.K_d]:
                    if self.tank_hero1.moving_right:
                        self.tank_hero1.direction = "d"
                        self.tank_hero1.move_right()
                        self.tank_hero1.transform_image_right("imgs\\p1tankR.png")
                elif key_pressed[pygame.K_a]:
                    if self.tank_hero1.moving_left:
                        self.tank_hero1.direction = "a"
                        self.tank_hero1.move_left()
                        self.tank_hero1.transform_image_left("imgs\\p1tankL.gif")
            #坦克英雄二移动
            if self.tank_hero2.live1 or self.tank_hero2.live2 or self.tank_hero2.live3:
                if key_pressed[pygame.K_UP]:
                    if self.tank_hero2.moving_up:
                        self.tank_hero2.direction = "w"
                        self.tank_hero2.move_up()
                        self.tank_hero2.transform_image_up("imgs\\p2tankU.gif")
                elif key_pressed[pygame.K_DOWN]:
                    if self.tank_hero2.moving_down:
                        self.tank_hero2.direction = "s"
                        self.tank_hero2.move_under()
                        self.tank_hero2.transform_image_under("imgs\\p2tankD.gif")
                elif key_pressed[pygame.K_RIGHT]:
                    if self.tank_hero2.moving_right:
                        self.tank_hero2.direction = "d"
                        self.tank_hero2.move_right()
                        self.tank_hero2.transform_image_right("imgs\\p2tankR.gif")
                elif key_pressed[pygame.K_LEFT]:
                    if self.tank_hero2.moving_left:
                        self.tank_hero2.direction = "a"
                        self.tank_hero2.move_left()   
                        self.tank_hero2.transform_image_left("imgs\\p2tankL.gif")

                
    '''坦克英雄子弹移动和删除方法'''
    def bullets_moving(self):
        for bullet in self.bullets.sprites():
            if bullet.direction == "top":
                bullet.moving_t()
            elif bullet.direction == "under":
                bullet.moving_u()
            elif bullet.direction == "right":
                bullet.moving_r()
            elif bullet.direction == "left":
                bullet.moving_l()
        for bullet in self.bullets.copy():
            if bullet.rect.bottom <= 0 or bullet.rect.bottom >=750 or bullet.rect.right >= 1136 or bullet.rect.right <= 0:
                self.bullets.remove(bullet)
                
                
    '''敌军坦克出现移动'''
    def enemy_tank_move(self):
        if self.home_wall:
            for enemy in self.enemy_list.sprites():
                enemy.enemy_random_move()
                enemy.update()

        
    '''敌方坦克子弹移动'''
    def enemy_tank_bullet_move(self):
        if self.home_wall:
            for bullet in self.enemy_bullet_group.sprites():
                if bullet.direction == "top":
                    bullet.moving_t()
                if bullet.direction == "under":
                    bullet.moving_u()
                if bullet.direction == "right":
                    bullet.moving_r()
                if bullet.direction == "left":
                    bullet.moving_l()
            for bullet in self.enemy_bullet_group.copy():
                if bullet.rect.bottom <= 0 or bullet.rect.bottom >=750 or bullet.rect.right >= 1136 or bullet.rect.right <= 0:
                    self.enemy_bullet_group.remove(bullet)

    
    '''碰撞检测'''
    def collide_check(self):
        for enemy_bullet in self.enemy_bullet_group:
            hit_list = pygame.sprite.spritecollide(enemy_bullet,self.tank_hero_group,False)
            for hero_explode in hit_list:
                self.enemy_bullet_group.remove(enemy_bullet)
                tank_explode = Explode(self.screen,hero_explode.rect)
                if hero_explode.live1:
                    hero_explode.live1 = False
                    hero_explode.live2 = True
                    self.tank_hero_group.remove(hero_explode)
                    self.music_explode()
                    for i in range(1,10):
                        tank_explode.update()
                    if hero_explode.a == 1:
                        hero_explode.rect.x = 341
                    else:
                        hero_explode.rect.x = 674
                    hero_explode.rect.y = 650
                elif hero_explode.live2:
                    hero_explode.live2 = False
                    hero_explode.live3 = True
                    self.tank_hero_group.remove(hero_explode)
                    self.music_explode()
                    for i in range(1,10):
                        tank_explode.update()
                    if hero_explode.a == 1:
                        hero_explode.rect.x = 341
                    else:
                        hero_explode.rect.x = 674
                    hero_explode.rect.y = 650
                elif hero_explode.live3:
                    hero_explode.live3 = False
                    hero_explode.live4 = True
                    self.music_explode()
                    self.tank_hero_group.remove(hero_explode)
                    for i in range(1,10):
                        tank_explode.update()
                    if hero_explode.a == 1:
                        hero_explode.rect.x = 341
                    else:
                        hero_explode.rect.x = 674
                    hero_explode.rect.y = 650
        for hero_bullet in self.bullets:
            hit_list = pygame.sprite.spritecollide(hero_bullet,self.enemy_list,False)
            for enemy_explode in hit_list:
                if enemy_explode.y >= 3:
                    self.bullets.remove(hero_bullet)
                    enemy_explode.y -= 1
                    file1 = "music\\hit.wav"
                    start_music = pygame.mixer.Sound(file1)
                    start_music.play()
                    tank_explode = Explode(self.screen,enemy_explode.rect)
                    for i in range(1,10):
                        tank_explode.update()
                if enemy_explode.y == 1 or enemy_explode.y == 2:
                    self.bullets.remove(hero_bullet)
                    enemy_explode.live = False
                    tank_explode = Explode(self.screen,enemy_explode.rect)
                    for i in range(1,10):
                        tank_explode.update()
                    self.enemy_list.remove(enemy_explode)
                    self.music_explode()
                if enemy_explode.o == 1:
                    if not enemy_explode.live:
                        tank_buff = Tank_buff(self.screen)
                        self.tank_buff_list.add(tank_buff)
        for hero_tank in self.tank_hero_group:
            collide_buff_list = pygame.sprite.spritecollide(hero_tank,self.tank_buff_list,False)
            for buff in collide_buff_list:
                if buff.m == 0:
                    self.enemy_move = False
                if buff.m == 1:
                    hero_tank.speed = 3
                    for bullet in self.bullets:
                        bullet.speed = 6
                if buff.m == 2:
                    for enemy in self.enemy_list:
                        file1 = "music\\blast.wav"
                        start_music = pygame.mixer.Sound(file1)
                        start_music.play()
                        tank_explode = Explode(self.screen,enemy.rect)
                        for i in range(1,10):
                            tank_explode.update()
                        self.enemy_list.remove(enemy)
                file1 = "music\\add.wav"
                start_music = pygame.mixer.Sound(file1)
                start_music.play()
                self.tank_buff_list.remove(buff)
                    
        hit_list = pygame.sprite.spritecollide(self.home,self.enemy_bullet_group,False)
        for hit in hit_list:
            self.init()
            self.game_element()
            self.home.live = False

            
        for hero_bullet in self.bullets:
            hit_wall_list = pygame.sprite.spritecollide(hero_bullet,self.walls,False)
            for wall in hit_wall_list:
                if wall.step == 0 or wall.step == 1 or wall.step == 2 or wall.step == 3:                    
                    wall_explode = Explode(self.screen,wall.rect)
                    for i in range(1,10):
                        wall_explode.update()
                    file1 = "music\hit.wav"
                    start_music = pygame.mixer.Sound(file1)
                    start_music.play()
                    self.bullets.remove(hero_bullet)
                if wall.step == 4:
                    wall_explode = Explode(self.screen,wall.rect)
                    for i in range(1,10):
                        wall_explode.update()
                    self.walls.remove(wall)
                    self.bullets.remove(hero_bullet)
        for bullet in self.enemy_bullet_group:
            hit_wall_list = pygame.sprite.spritecollide(bullet,self.walls,False)
            for wall in hit_wall_list:
                if wall.step == 0 or wall.step == 1 or wall.step == 2 or wall.step == 3:
                    wall_explode = Explode(self.screen,wall.rect)
                    for i in range(1,10):
                        wall_explode.update()
                    file1 = "music\hit.wav"
                    start_music = pygame.mixer.Sound(file1)
                    start_music.play()
                    self.enemy_bullet_group.remove(bullet)
                if wall.step == 4:
                    wall_explode = Explode(self.screen,wall.rect)
                    for i in range(1,10):
                        wall_explode.update()
                    self.walls.remove(wall)
                    self.enemy_bullet_group.remove(bullet)

        #英雄坦克碰撞墙壁不能继续向前走
        for hero_tank in self.tank_hero_group:
            collide_tank_list = pygame.sprite.spritecollide(hero_tank,self.walls,False)
            for wall in collide_tank_list:
                if wall.step == 0 or wall.step == 1 or wall.step == 2 or wall.step == 3 or wall.step == 4 or wall.step == 5:
                    
                    if hero_tank.direction == "w" and wall.rect.bottom == hero_tank.rect.top + 1 or wall.rect.bottom == hero_tank.rect.top + 2 or wall.rect.bottom == hero_tank.rect.top + 3:
                        hero_tank.moving_up = False
                    elif hero_tank.direction == "s" and wall.rect.top + 1 == hero_tank.rect.bottom or wall.rect.top + 2 == hero_tank.rect.bottom or wall.rect.top + 3 == hero_tank.rect.bottom:
                        hero_tank.moving_down = False
                    elif hero_tank.direction == "d" and wall.rect.left + 1 == hero_tank.rect.right or wall.rect.left + 2 == hero_tank.rect.right or wall.rect.left + 3 == hero_tank.rect.right:
                        hero_tank.moving_right = False
                    elif hero_tank.direction == "a" and wall.rect.right == hero_tank.rect.left + 1 or wall.rect.right == hero_tank.rect.left + 2 or wall.rect.right == hero_tank.rect.left + 3:
                        hero_tank.moving_left = False
        #敌方坦克碰撞墙壁不能继续向前走
        for enemy_tank in self.enemy_list:
            collide_tank_list = pygame.sprite.spritecollide(enemy_tank,self.walls,False)
            for wall in collide_tank_list:
                if wall.step == 0 or wall.step == 1 or wall.step == 2 or wall.step == 3 or wall.step == 4 or wall.step == 5:
                    if enemy_tank.direction == "w" and wall.rect.bottom == enemy_tank.rect.top + 1 or wall.rect.bottom == enemy_tank.rect.top + 2 or wall.rect.bottom == enemy_tank.rect.top + 3:
                        enemy_tank.moving_up = False
                    elif enemy_tank.direction == "s" and wall.rect.top + 1 == enemy_tank.rect.bottom or wall.rect.top + 2 == enemy_tank.rect.bottom or wall.rect.top + 3 == enemy_tank.rect.bottom:
                        enemy_tank.moving_down = False
                    elif enemy_tank.direction == "d" and wall.rect.left + 1 == enemy_tank.rect.right or wall.rect.left + 2 == enemy_tank.rect.right or wall.rect.left + 3 == enemy_tank.rect.right:
                        enemy_tank.moving_right = False
                    elif enemy_tank.direction == "a" and wall.rect.right == enemy_tank.rect.left + 1 or wall.rect.right == enemy_tank.rect.left + 2 or wall.rect.right == enemy_tank.rect.left + 3:
                        enemy_tank.moving_left = False
                        
    '''让坦克英雄能移动问题(也就是照应碰撞墙壁)'''
    def tank_moving(self):
        self.tank_hero1.moving_up = True
        self.tank_hero1.moving_down = True
        self.tank_hero1.moving_right = True
        self.tank_hero1.moving_left = True
        self.tank_hero2.moving_up = True
        self.tank_hero2.moving_down = True
        self.tank_hero2.moving_right = True
        self.tank_hero2.moving_left = True
       
    '''游戏元素方法'''
    def game_element(self):
        #生成坦克英雄
        self.tank_hero1 = Tank_hero(self.screen,2,"imgs\\p1tankU.gif",341,650)
        self.tank_hero2 = Tank_hero(self.screen,2,"imgs\\p2tankU.gif",674,650)
        #区别坦克英雄一和坦克英雄二
        self.tank_hero2.a = 2
        #生成子弹精灵组(坦克英雄一和坦克英雄二)
        self.bullets = pygame.sprite.Group()
        #生成子弹精灵组(敌方坦克)
        self.enemy_bullet_group = pygame.sprite.Group()
        #生成敌人子弹精灵组
        self.enemy_list = pygame.sprite.Group()
        #生成坦克英雄精灵组
        self.tank_hero_group = pygame.sprite.Group()
        #把两个英雄坦克添加到坦克英雄精灵组中
        self.tank_hero_group.add(self.tank_hero1,self.tank_hero2)
        #坦克英雄小图标(用于计算坦克英雄生命个数)
        self.tank1 = pygame.image.load("imgs\\000.gif")
        self.tank2 = pygame.image.load("imgs\\0000.gif")
        #这个是家,如果家爆炸了,game over.
        self.home = Home(self.screen)
        #这个是生成一个墙对象
        self.wall = Walls(self.screen)
        #墙壁的精灵组
        self.walls = pygame.sprite.Group()
        #调用墙对象的draw_home方法
        self.home.draw_home()
        #这个是坦克buff
        self.tank_buff_list = pygame.sprite.Group()
        #刚开始游戏填充颜色
        self.screen.fill(self.bg_color)
        
    '''游戏说明界面'''
    def game_description_interface(self):
        #生成矩形对象
        self.tank_hero1_handle = Game_interface(self.screen,"坦克英雄一操作",(298,100))
        self.tank_hero1_up_handle = Game_interface(self.screen,"向上按键:w",(298,160))
        self.tank_hero1_down_handle = Game_interface(self.screen,"向下按键:s",(298,220))
        self.tank_hero1_right_handle = Game_interface(self.screen,"向右按键:d",(298,280))
        self.tank_hero1_left_handle = Game_interface(self.screen,"向上按键:a",(298,340))
        self.tank_hero1_fire_handle = Game_interface(self.screen,"发射子弹:j",(298,400))
        self.tank_hero2_handle = Game_interface(self.screen,"坦克英雄二操作",(818,100))
        self.tank_hero2_up_handle = Game_interface(self.screen,"向上按键:↑",(818,160))
        self.tank_hero2_down_handle = Game_interface(self.screen,"向上按键:↓",(818,220))
        self.tank_hero2_right_handle = Game_interface(self.screen,"向上按键:→",(818,280))
        self.tank_hero2_left_handle = Game_interface(self.screen,"向上按键:←",(818,340))
        self.tank_hero2_fire_handle = Game_interface(self.screen,"发射子弹:0",(818,400))
        self.game_suspend = Game_interface(self.screen,"游戏暂停:空格键",(543,500))
        self.game_point = Game_interface(self.screen,"温馨提示:请等待9秒自动返回",(543,560))
        self.tank_hero1_handle.draw_interface()
        self.tank_hero1_up_handle.draw_interface()
        self.tank_hero1_down_handle.draw_interface()
        self.tank_hero1_right_handle.draw_interface()
        self.tank_hero1_left_handle.draw_interface()
        self.tank_hero1_fire_handle.draw_interface()
        self.tank_hero2_handle.draw_interface()
        self.tank_hero2_up_handle.draw_interface()
        self.tank_hero2_down_handle.draw_interface()
        self.tank_hero2_right_handle.draw_interface()
        self.tank_hero2_left_handle.draw_interface()
        self.tank_hero2_fire_handle.draw_interface()
        self.game_suspend.draw_interface()
        self.game_point.draw_interface()
        #绘制矩形对象
        pygame.display.update()
    
    '''绘制游戏按钮'''
    def bg_button(self):
        #创建开始游戏按钮
        self.play_button = Button(self.screen,"开始游戏")
        #绘制开始游戏按钮
        self.play_button.draw_button()
        #创建游戏说明按钮
        self.description_button = Button(self.screen,"游戏说明")
        self.description_button.rect.center = (450,360)
        #创建自定义地图按钮
        self.customize_map_button = Button(self.screen,"自定义地图")
        self.customize_map_button.rect.center = (450,420)
        #绘制自定义地图按钮
        self.customize_map_button.draw_button()
        #绘制游戏说明按钮
        self.description_button.draw_button()
        #刷新显示
        pygame.display.update()
        
    '''坦克英雄发射子弹音效'''
    def music_fire(self):
        self.file4 = "music\\fire.wav"
        fire_music = pygame.mixer.Sound(self.file4)
        fire_music.play()

    '''所有坦克爆炸音效'''
    def music_explode(self):
        self.file3 = "music\\blast.wav"
        explode_music = pygame.mixer.Sound(self.file3)
        explode_music.play()
        
    '''绘制图像方法'''
    def draw_image(self):
        self.screen.fill(self.bg_color)
        if self.home_wall:
            if self.tank_hero1.live1:
                self.screen.blit(self.tank_hero1.image,self.tank_hero1.rect)
            if self.tank_hero2.live1:
                self.screen.blit(self.tank_hero2.image,self.tank_hero2.rect)
            if self.tank_hero1.live2:
                self.screen.blit(self.tank_hero1.image,self.tank_hero1.rect)
                self.tank_hero_group.add(self.tank_hero1)
            if self.tank_hero1.live3:
                self.screen.blit(self.tank_hero1.image,self.tank_hero1.rect)
                self.tank_hero_group.add(self.tank_hero1)
            if self.tank_hero2.live2:
                self.screen.blit(self.tank_hero2.image,self.tank_hero2.rect)
                self.tank_hero_group.add(self.tank_hero2)
            if self.tank_hero2.live3:
                self.screen.blit(self.tank_hero2.image,self.tank_hero2.rect)
                self.tank_hero_group.add(self.tank_hero2)
            self.bullets.draw(self.screen)
        self.enemy_list.draw(self.screen)
        self.enemy_bullet_group.draw(self.screen)
        self.tank_hero1.residue_tank()
        self.tank_hero2.y = 650
        self.tank_hero2.color = (158,253,200)
        self.tank_hero2.residue_tank()
        self.home.draw_home()
        self.screen.blit(self.bg_2,(0,0))
        self.screen.blit(self.bg_1,(0,0))
        self.screen.blit(self.bg_2,(0,710))
        self.screen.blit(self.bg_1,(1068,0))
        self.screen.blit(self.tank1,(1073,600))
        self.screen.blit(self.tank2,(1073,650))
        self.tank_hero1.residue_tank()
        self.tank_hero2.y = 650
        self.tank_hero2.color = (158,253,200)
        self.tank_hero2.residue_tank()
        if not self.home_wall:
            self.wall.update()
            self.wall.no_screen()
        if len(self.walls)!=0:
            self.walls.draw(self.screen)
        self.tank_buff_list.draw(self.screen)
        
    def init(self):
        '''初始化所有模块'''
        self.enemy_list.empty()
        self.enemy_bullet_group.empty()
        self.tank_hero1.live1 = True
        self.tank_hero1.live2 = False
        self.tank_hero1.live3 = False
        self.tank_hero2.live1 = True
        self.tank_hero2.live2 = False
        self.tank_hero2.live3 = False
        self.tank_hero1.residue_tank()
        self.tank_hero2.residue_tank()
        self.bullets.empty()
        
    '''刷新显示方法'''
    def update(self):
        self.bullets.update()
        self.enemy_list.update()
        self.enemy_bullet_group.update()
        self.walls.update()
        self.tank_buff_list.update()
        pygame.display.update()

    '''绘制坦克出生的图片'''
    def born_image(self,rect):
        self.screen.blit(self.start1,rect)
        pygame.time.delay(10)
        pygame.display.update()
        self.screen.blit(self.start2,rect)
        pygame.time.delay(10)
        pygame.display.update()
        self.screen.blit(self.start3,rect)
        pygame.time.delay(10)
        pygame.display.update()
        self.screen.blit(self.start4,rect)
        pygame.time.delay(10)
        pygame.display.update()
    
tank_big_war = Tank_war_main()

下面是素材

链接:https://pan.baidu.com/s/1xy1VSIrdlPfkB7i1SnbCEQ
提取码:mnhx

  • 39
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值