python的飞机大战开发,python实现飞机大战完整代码,可运行

  python的飞机大战开发,python实现飞机大战完整代码,可运行

  这版和网上流传的大部分差不多,没有声音,不能计分。有时间会写个的

  首先你得安装了Python3和pygame,最好用路径编写。

  第一步我们先做一些准备工作:

  测试简介及安装是否能运行导入pygamepygame.init()#创建游戏窗口屏幕=py游戏。展示。set _ mode((480,700))bg=pygame.image.load( ./图像/背景。png’)屏幕。blit(BG,(0,0))pygame.display.update()而True: passpygame.quit()上面代码我没写定时关闭,运行时注意

  写英雄图像导入pygamepygame.init()#创建游戏窗口屏幕=py游戏。展示。set _ mode((480,700))bg=pygame.image.load( ./images/ul 0961-7549。jpg’)屏幕。blit(BG,(0,0))pygame.display.update()#英雄图像hero=pygame.image.load( ./images/me1。png’)屏幕。blit(英雄,(200,500))py游戏。展示。更新()时钟=py游戏。时间。clock()hero _ rect=py game .Rect(200,500,102,126)while True:clock。勾选(60)表示py游戏中的事件。事件。get():if事件。type==py游戏.退出:打印(游戏退出.)pygame。quit()退出()hero _ rect。如果hero _ rect,y-=2。y=0:hero _ rect。y=700屏。blit(BG,(0,0)) screen.blit(hero,hero _ rect)pygame。展示。更新()pygame。退出()" "

  3写敌机

  导入从piane _ sprites导入。init()#创建游戏窗口屏幕=py游戏。展示。set _ mode((480,700))bg=pygame.image.load( ./images/ul 0961-7549。jpg’)屏幕。blit(BG,(0,0))pygame.display.update()#英雄图像hero=pygame.image.load( ./images/me1。png’)屏幕。blit(英雄,(200,500))py游戏。展示。更新()时钟=py游戏。时间。clock()hero _ rect=py game .矩形(200,500,102,126)敌人=GameSprite(./图片/敌人1。png )敌人1=GameSprite(./images/enemy1.png ,2)enemy _ group=py游戏。雪碧。组(敌人,敌人1)而真实:时钟。勾选(60)表示py游戏中的事件。事件。get():if事件。type==py游戏.退出:打印(游戏退出.)pygame。quit()退出()hero _ rect。如果hero _ rect,y-=5。y=0:hero _ rect。y=700屏。blit(BG,(0,0)) screen.blit(hero,hero _ rect)敌军_集团。更新()敌人_集团。绘制(屏幕)pygame。展示。更新()pygame。退出()接下来就写我们的主程序了

  1、主程序:plane_main.py

  从piane _ sprites导入py game import * class piane game(object):def _ _ init _ _(self):print(游戏初始化) #1.创建游戏的窗口自我。屏幕=py游戏。展示。set _ mode(SCREEN _ rect。尺寸)# 2 .创建游戏的时钟自我。时钟=py游戏。时间。时钟()本身._ _ CREATE _ sprites()pygame。时间。set _ timer(CREATE _ ENEMY _ EVENT,1000)pygame。时间。set _ timer(HERO _ FIRE _ EVENT,500)def _ _ CREATE _ sprites(self):bg1=Background()bg2=Background(True)bg2。直肠。y=-bg2。身高自我。back _ group=pygame。雪碧。组(bg1,bg2)自身。敌人组=pygame。雪碧。group()self。英雄=英雄()自我。英雄_团体游戏开始.)而真:自我。时钟。勾选(FRAME _ SEPER _ C)self ._ _事件处理程序()本身__check_collide() self ._ _ update _ sprites()py game。展示。update()def _ _ event _ handler(self):对于pygame.event.get()中的事件:if event.type==pygame .退出:平面游戏._ _ game _ over()elif事件。type==CREATE _ ENEMY _ EVENT:ENEMY=敌国()自己。敌_团。添加(敌人)elif事件。type==HERO _ FIRE _ EVENT:self。英雄。FIRE()# elif事件。type==pygame .按键和_event.key==pygme .k _ RIG # print( )keys _ pressed=py game。钥匙。get _ pressed()if keys _ pressed[py game .k _ RIGHT]:自己。英雄。speed=3 elif keys _ pressed【py game .k _ LEFT]:自己。英雄。速度=-3 else:自我。英雄。speed=0 def _ _ check _ collide(self):py游戏。雪碧。群体碰撞(自我。英雄。子弹,self.enemy_group,True,True)答案=py游戏。雪碧。精灵碰撞(自我。hero,self.enemy_group,True)if len(答案)0:self。英雄。自杀._ _ game _ over()def _ _ update _ sprites(self):self。back _ group。更新()自我。back _ group。画(自己。屏幕)自我。敌国_ group。更新()自我。英雄_团。更新()自我。英雄_团。画(自己。屏幕)自我。英雄。子弹。更新()自我。英雄。子弹。画(自己。screen)@静态方法def _ _ game _ over(self):print(游戏结束)if _ _ name _ _== _ _ main _ _ :game=PianeGame()游戏。start _ game()2 .游戏精灵:plane_sprites.py

  导入pygameimport random#屏幕大小的常量屏幕_RECT=pygame .矩形(0,0,480,700 )#刷新的帧率FRAME_SEPER_C=60#创建敌机的定时器常量CREATE_ENEMY_EVENT=pygame .用户事件#英雄发射子弹事件HERO_FIRE_EVENT=pygame .用户事件1类游戏prite(py游戏。雪碧。精灵): 飞机大战游戏精灵 def __init__(self,image_name,speed=1): #调用父类的初始化方法超级()。__init__() #定义对象的属性自我。image=pygame。形象。加载(image _ name)自身。rect=self。形象。get _ rect()self。速度=速度定义更新(自身):#在屏幕的垂直方向上移动self.rect.y=self.speedclass背景(GameSprite):“”游戏背景精灵 def __init__(self,is_alt=False): #1 .调用父类方法实现精灵的创建超级()。__init__( ./images/background.png) #2 .判断是否交替图像,如果是需要设置初始位置if is _ alt:self。直肠。y=-自我。直肠。高度定义更新(自身):# 1 .调用父类的方法实现超级()。更新()#2。判断是否移出屏幕,如果移出屏幕,将设置到屏幕的上方如果自我。直肠。y=屏幕_矩形。身高:自我。直肠。y=-自我。直肠。树高级敌人(GameSprite):“”敌机精灵 def __init__(self): super().__init__( ./图片/敌人1。png’)自我。速度=随机。randint(2,4)self。直肠。bottom=0 max _ x=SCREEN _ rect。宽度-自我。直肠。宽度自我。直肠。x=随机。randint(0,max_x) def update(self): super().如果是自己,则更新()。直肠。y=屏幕_矩形。高度:打印()自身。kill()def _ _ del _ _(self):print()类英雄(GameSprite):def _ _ init _ _(self):super().__init__( ./images/me1.png ,0)self。直肠。centex=SCREEN _ rect。centex self。直肠。bottom=SCREEN _ rect底-120自我。子弹=py游戏。雪碧。group()def更新(self):self。直肠。x=自我。速度如果自我。直肠。x 0:自我。直肠。x=0 elif self。直肠。右屏_矩形。右=SCREEN _ rect。right def fire(self):print()for I in(0 _ _ init _ _( ./images/bullet1.png ,-2) def更新(self): super().如果是自己,则更新()。直肠。底层0:自我。kill()def _ _ del _ _(self):pass

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: