使用python制作一个飞机大战游戏

  介绍

使用python制作一个飞机大战游戏?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

具体内容如下

import  gc   import 随机      import  pygame      #,玩家飞机精灵类   import 常量         class  HeroPlane (pygame.sprite.Sprite):   ,def  __init__(自我,屏幕):   #,才能调用父类初始化方法   #,才能pygame.sprite.Sprite.__init__(自我)   超级才能(). __init__ ()   #才能,窗口   时间=self.screen 才能;屏幕上   #才能,一个玩家飞机图片   self.image 才能=,pygame.image.load (& # 39;。/feiji feiji.png& # 39;)   #,才能飞机矩形区域对象   时间=self.rect 才能;self.image.get_rect ()   #才能,左上角坐标   self.rect.topleft 才能=,(512,,2,安康;116年,/,2,600]   #,才能飞机的速度   self.speed 才能=15   #才能,一个精灵组,存放所有的子弹精灵   时间=self.bullets 才能;pygame.sprite.Group ()   #才能,血量,初始100年   self.blood_value 才能=100      #,才能标记玩家飞机是否了   self.is_remove 才能=False      #,才能显示爆炸图片的,索引,从0开始   self.mIndex 才能=0      #,才能存放爆炸图片,的列的表   时间=self.bomb_mImages 才能;[]      for 才能;v 拷贝范围(1,15):   ,,#,把所有图片,存到列表里,每个图片,存2次   ,,self.bomb_mImages.append (pygame.image.load (& # 39;。/feiji/image  & # 39;, +, str (v), +, & # 39; . png # 39;))   ,,self.bomb_mImages.append (pygame.image.load (& # 39;。/feiji/image  & # 39;, +, str (v), +, & # 39; . png # 39;))      ,def  kill_blood(自我,,kill_value=https://www.yisu.com/zixun/10):   ””“血量减少”“”   自我。blood_value -=kill_value   打印(“被打中了血,量还剩% s的% self.blood_value)   如果自我。blood_value <=0:   #避免血量负值   自我。blood_value=0   #血量<=0设置is_remove为真实的   自我。is_remove=True      def key_control(自我):   ”“按键监听操作飞机上下左右和发子弹“”“   #监听键盘事件   key_pressed=pygame.key.get_pressed() #注意这种方式是能够检测到一直按下不松开的键盘      如果key_pressed pygame。K_w]或key_pressed [pygame.K_UP]:   #最值如果小于0就到了最顶部不要再移动了   如果self.rect。顶部> 3:   self.rect。最高-=self.speed   如果key_pressed pygame。K_s]或key_pressed [pygame.K_DOWN]:   如果self.rect。底<=768:   self.rect。底+=self.speed   如果key_pressed pygame。K_a]或key_pressed [pygame.K_LEFT]:   如果self.rect。左> 0:   self.rect。左-=self.speed   如果key_pressed pygame。K_d]或key_pressed [pygame.K_RIGHT]:   如果self.rect。对<520:   self.rect。正确的+=self.speed   如果key_pressed (pygame.K_SPACE):   #打印(“空间”)   #创建三个子弹   bullet1=子弹(自我。屏幕,self.rect。离开了,self.rect。,1)   bullet2=子弹(自我。屏幕,self.rect。离开了,self.rect。,2)   bullet3=子弹(自我。屏幕,self.rect。离开了,self.rect。,3)   #添加到精灵组   self.bullets。添加(bullet1 bullet2 bullet3)      def炸弹(自我):   打印('玩家飞机爆炸中”)   ”““显示爆炸图片”“   self.screen.blit (self.bomb_mImages[自我。mIndex], self.rect)   自我。mIndex +=1   打印(mIndex, self.mIndex)   如果自我。mIndex>=len (self.bomb_mImages):   #播放到了最后爆炸结束返回现实   还真      def(自我更新):   如果self.is_remove:   打印('玩家飞机挂掉的)   #如果玩家飞机挂掉   如果self.bomb ():   #爆炸结束   打印(“爆炸结束”)   self.rect。topleft=(-200、-200)   #开启倒计时   pygame.time.set_timer(常量。game_over_id, 1000)   #把玩家飞机指向没有停止更新   经理。英雄=没有   其他:   self.key_control ()   self.display ()      def显示(自我):   #如果自我。blood_value <=0:   # #如果血量小于0移出窗口   # self.rect。topleft=(-200、-200)      #把飞机显示到窗口上飞机116 * 100   self.screen.blit(自我。形象,self.rect)   #更新精灵组里的子弹位置   self.bullets.update ()   #精灵组所有子弹显示到窗口   self.bullets.draw (self.screen)         类子弹(pygame.sprite.Sprite):   # path_num表示散弹中子弹是哪一个   def __init__(自我、屏幕在内,planey path_num):   #调用父类初始化方法   # pygame.sprite.Sprite.__init__(自我)   super () . __init__ ()   #窗口   自我。屏幕=屏幕   #一个子弹图片   自我。形象=pygame.image.load (“。/feiji/bullet_12.png”)   #子弹矩形区域对象   自我。矩形=self.image.get_rect ()   #子弹左上角坐标   self.rect。topleft=[在内+ 48,planey - 20)   #子弹的速度   自我。速度=15   # path_num表示散弹中子弹是哪一个   自我。path_num=path_num      def(自我更新):   ””“修改子弹坐标”“   self.rect。最高-=self.speed   如果self.rect。底

使用python制作一个飞机大战游戏