• UUC2
    了解作者
  • Python
    开发工具
  • 877KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 16
    下载次数
  • 2019-07-03 19:14
    上传日期
游戏,坦克大战,python进行开发,实现基本的游戏界面和操作
坦克大战.zip
  • 坦克大战
  • img
  • blast0.gif
    744B
  • start.wav
    862.6KB
  • blast2.gif
    2.6KB
  • hit.wav
    22.6KB
  • enemy1U.gif
    3.6KB
  • enemymissile.gif
    377B
  • p1tankL.gif
    3.5KB
  • enemy1D.gif
    3.6KB
  • enemy1L.gif
    3.6KB
  • enemy1R.gif
    3.6KB
  • blast3.gif
    3.7KB
  • p1tankR.gif
    3.5KB
  • blast1.gif
    1.9KB
  • p1tankU.gif
    3.4KB
  • steels.gif
    1.7KB
  • p1tankD.gif
    3.4KB
  • blast4.gif
    5.6KB
  • fire.wav
    67.6KB
  • 分析
    384B
  • fly_Main.py
    1.2KB
  • ffly_main2.py
    15.6KB
内容介绍
import pygame from pygame.sprite import Sprite import sys import time import random SCREEN_WIDTH = 780 SCREEN_HEIGHT = 500 BG_COLOR = pygame.Color(0,0,0) TEXT_COLOR = pygame.Color(255,0,0) #复活次数 #定义一个精灵类 class BaseItem(Sprite): def __init__(self, color, width, height): # Call the parent class (Sprite) constructor pygame.sprite.Sprite.__init__(self) class MainGame (): window = None my_tank = None REC_TIME=0 #敌方坦克初始化 EnemyTankList = [] EnemyTankCount = 5 #存储我方子弹列表 myBulleList = [] #存储敌方子弹 EnemyBulletList = [] #创建爆炸对象列表 explodeList = [] #创建墙壁列表 wallList =[] def __init__(self): pass def starGame(self): #初始化,设置标题,屏幕大小 pygame.display.init() MainGame.window =pygame.display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT)) pygame.display.set_caption("坦克大战1.03") #初始化我方坦克 self.creatMyTank() # 初始化敌方坦克 self.creatEnemyTank() #初始化墙壁 self.creatWall() while True: #填充颜色 MainGame.window.fill(BG_COLOR) #获取事件 self.getEvent() #绘制文字 MainGame.window.blit(self.getTextSuface("敌方坦克剩余数量%d"%MainGame.EnemyTankCount),(SCREEN_HEIGHT/2,20)) #调用我方坦克进行显示 if MainGame.my_tank and MainGame.my_tank.live: MainGame.my_tank.displayTank() else: del MainGame.my_tank MainGame.my_tank =None #显示我方子弹 self.blitMyBullet() #敌方坦克进行显示 self.blitEnenyTank() #显示墙壁 self.blitWall() #显示敌方子弹 self.blitEnenyBullet() #显示爆炸效果 self.blitExplode() if MainGame.my_tank and MainGame.my_tank.live: if not MainGame.my_tank.stop: MainGame.my_tank.move() MainGame.my_tank.hitWall() MainGame.my_tank.myTank_hit_enemyTank() if MainGame.EnemyTankCount == 0: MainGame.window.blit(self.getTextSuface('恭喜你,顺利通过'), (SCREEN_HEIGHT/2, SCREEN_WIDTH/2)) time.sleep(2) self.endGame() pygame.display.update() time.sleep(0.02) def creatWall(self): for i in range(0,SCREEN_WIDTH,SCREEN_WIDTH//6): top = SCREEN_HEIGHT//3 left = i wall = Wall(left,top) MainGame.wallList.append(wall) def creatMyTank(self): MainGame.my_tank = MyTank(SCREEN_WIDTH/2,SCREEN_HEIGHT/3*2) music = Music("img/start.wav") music.play() def creatEnemyTank(self): top = 100 for i in range(MainGame.EnemyTankCount): left = random.randint(0,600) speed = random.randint(1,4) enmy =EnemyTank(left,top,speed) MainGame.EnemyTankList.append(enmy) def blitWall(self): for wall in MainGame.wallList: if wall.live: wall.displayWall() else: MainGame.wallList.remove(wall) def blitEnenyTank(self): "循环遍历敌方坦克,展示敌方坦克" for enmeyTank in MainGame.EnemyTankList: if enmeyTank.live: enmeyTank.displayTank() enmeyTank.randomMove() EnemyBullet = enmeyTank.shot() enmeyTank.hitWall() enmeyTank.enemyTank_hit_MyTank() #存储敌方子弹 if EnemyBullet: MainGame.EnemyBulletList.append(EnemyBullet) else: MainGame.EnemyTankList.remove(enmeyTank) MainGame.EnemyTankCount -=1 def blitMyBullet(self): for bullet in MainGame.myBulleList: if bullet.live: bullet.displayBullet() bullet.move() bullet.myBullet_hit_enemyTank() bullet.wall_bullet() else: MainGame.myBulleList.remove(bullet) def blitEnenyBullet(self): for bullet in MainGame.EnemyBulletList: if bullet.live: #随机会产生None bullet.displayBullet() bullet.move() bullet.enemyBullet_hit_myTank() bullet.wall_bullet() else: MainGame.EnemyBulletList.remove(bullet) def blitExplode(self): for explode in MainGame.explodeList: if explode.live: explode.displayExplode() else: MainGame.explodeList.remove(explode) def endGame(self): print("欢迎下次游戏") sys.exit() def getTextSuface(self,text): pygame.font.init() # print(pygame.font.get_fonts()) font = pygame.font.SysFont('kaiti',18) textSurface =font.render(text,True,TEXT_COLOR) return textSurface def getEvent(self): '''获取所有事件''' eventList= pygame.event.get() for event in eventList: if event.type == pygame.QUIT: self.endGame() if event.type == pygame.KEYDOWN: if not MainGame.my_tank: if event.key ==pygame.K_ESCAPE: if MainGame.REC_TIME < 3: self.creatMyTank() MainGame.REC_TIME +=1 if MainGame.my_tank and MainGame.my_tank.live: if event.key ==pygame.K_DOWN: MainGame.my_tank.direction ='D' #MainGame.my_tank.move() MainGame.my_tank.stop =False print("按下向下的键,向下移动",) elif event.key == pygame.K_UP: MainGame.my_tank.direction = 'U' #MainGame.my_tank.move() MainGame.my_tank.stop = False print("按下向上的键,向上移动") elif event.key == pygame.K_LEFT: MainGame.my_tank.direction = 'L' #MainGame.my_tank.move() MainGame.my_tank.stop = False print("按下向左的键,向左移动", MainGame.my_tank.direction) elif event.key == pygame.K_RIGHT: MainGame.my_tank.direction = 'R' #MainGame.my_tank.move() MainGame.my_tank.stop = False print("按下向右的键,向右移动", MainGame.my_tank.direction) elif event.key == pygame.K_SPACE: print("发射子弹") #创建我方子弹 if len(MainGame.myBulleList) < 3: myBullet = Bullet(MainGame.my_tank) MainGame.myBulleList.append(myBullet) # 发射子弹音效 ShotMusic = Music('img/hit.wav') ShotMusic.play() elif event.type == pygame.KEYUP: if event.key ==pygame.K_UP or event.key == pygame.K_DOWN or event.key ==pygame.K_LEFT or event.key ==pygame.K_RIGHT: if MainGame.my_tank and MainGame.my_tank.live: MainGame.my_tank.stop=True class
评论
    相关推荐
    • 坦克大战.rar
      基于 Python 平台开发的一款坦克大战游戏,画面清晰,操纵灵活,小时候玩过的很经典的射击游戏,希望大家喜欢!
    • 坦克大战.zip
      通过编写简单的python语句,实现了简单的坦克游戏,能够完成一定的功能
    • pygame 坦克游戏
      利用90坦克大战的图像声音资源重新组合的一款用python语言写的Pygame引擎小游戏·
    • python坦克大战
      python坦克大战
    • python开发小游戏
      python 中pygame模块开发的小游戏,包含:贪吃蛇,俄罗斯方块,坦克大战,推箱子等小游戏。源代码,源代码。
    • Python坦克大战代码.rar
      Python坦克大战的源代码,初学Python的小白练习和模仿,结构简单,明了,易懂。工程文件分开建造,测试阶段合理
    • 坦克大战python编写)
      python编写的坦克大战,主要用到的模块是pygame。代码有足够详细的注释,非常容易理解,喜欢的朋友支持支持~
    • 坦克大战游戏
      这是我们用python语言开发的一个名为坦克大战的小游戏,可以作为源码直接跑,也可以继续开发
    • python.pygame.坦克大战源代码
      这是我分享的著名的坦克大战python版,python游戏的进阶版。很好的游戏参考资源。 有兴趣的同学可以加群634295212 一起讨论学习。参考分享或改进代码请注明原作者信息。 及新作者信息
    • qpopper2.53.tar.Z
      pop3 server