生活工程体验信仰哲学精神
投稿投诉
精神世界
探索历史
哲学文学
艺术价值
信仰创造
境界审美
体验技术
技能工具
工程信息
医学生产
生活运用
操作能力

Python开发飞机大战小游戏代码开源

9月17日 长歌行投稿
  效果展示:
  实现功能:
  1:飞机的移动,发射子弹,手雷,生命值,生命条
  2:敌飞机有3种形态(小,中,大)不同的飞机大小不一样,生命值不一样,爆炸动画也不一样
  3:背景音乐,子弹击中敌机会发生碰撞的爆炸动画和音效
  4:随机产生补给(双射子弹和全屏炸弹)
  5:难度逐渐增加(同一屏幕出现的飞机更多)
  代码如下:(一个类文件(800行代码))
  importpygame
  importsys
  importtraceback
  frompygame。localsimport
  fromrandomimport
  pygame。init()
  pygame。mixer。init()
  bgsizewidth,height480,700
  screenpygame。display。setmode(bgsize)
  pygame。display。setcaption(飞机大战)
  backgroundpygame。image。load(imagesbackground。png)。convert()
  定义颜色
  BLACK(0,0,0)
  GREEN(0,255,0)
  RED(255,0,0)
  WHITE(255,255,255)
  载入音乐
  pygame。mixer。music。load(soundbjmusic。wav)
  pygame。mixer。music。setvolume(0。1)
  bulletsoundpygame。mixer。Sound(soundbullet。wav)
  bulletsound。setvolume(0。2)
  bombsoundpygame。mixer。Sound(soundusebomb。wav)
  bombsound。setvolume(0。2)
  supplysoundpygame。mixer。Sound(soundsupply。wav)
  supplysound。setvolume(0。2)
  getbombsoundpygame。mixer。Sound(soundgetbomb。wav)
  getbombsound。setvolume(0。2)
  getbulletsoundpygame。mixer。Sound(soundgetbullet。wav)
  getbulletsound。setvolume(0。2)
  upgradesoundpygame。mixer。Sound(soundupgrade。wav)
  upgradesound。setvolume(0。2)
  enemy3flysoundpygame。mixer。Sound(soundenemy3flying。wav)
  enemy3flysound。setvolume(0。6)
  enemy1downsoundpygame。mixer。Sound(soundenemy1down。wav)
  enemy1downsound。setvolume(0。2)
  enemy2downsoundpygame。mixer。Sound(soundenemy2down。wav)
  enemy2downsound。setvolume(0。2)
  enemy3downsoundpygame。mixer。Sound(soundenemy3down。wav)
  enemy3downsound。setvolume(0。2)
  medownsoundpygame。mixer。Sound(soundmedown。wav)
  medownsound。setvolume(0。2)
  设置我的飞机类:设置我的飞机类:设置我的飞机类:设置我的飞机类:设置我的飞机类
  classMyPlane(pygame。sprite。Sprite):
  definit(self,bgsize):
  super(MyPlane,self)。init()
  self。image1pygame。image。load(imagesme1。png)。convertalpha()
  self。image2pygame。image。load(imagesme2。png)。convertalpha()
  self。destroyimages〔〕
  self。destroyimages。extend(〔
  pygame。image。load(imagesmedestroy1。png)。convertalpha(),
  pygame。image。load(imagesmedestroy2。png)。convertalpha(),
  pygame。image。load(imagesmedestroy3。png)。convertalpha(),
  pygame。image。load(imagesmedestroy4。png)。convertalpha()
  〕)
  self。rectself。image1。getrect()
  self。width,self。heightbgsize〔0〕,bgsize〔1〕
  self。activeTrue
  self。invincibleFalse
  self。maskpygame。mask。fromsurface(self。image2)
  self。rect。left,self。rect。top(self。widthself。rect。width)2,self。heightself。rect。height60
  self。speed10
  defmoveUp(self):
  ifself。rect。top0:
  self。rect。topself。speed
  else:
  self。rect。top0
  defmoveDown(self):
  ifself。rect。bottomself。height60:
  self。rect。bottomself。speed
  else:
  self。rect。bottomself。height60
  defmoveLeft(self):
  ifself。rect。left0:
  self。rect。leftself。speed
  else:
  self。rect。left0
  defmoveRight(self):
  ifself。rect。rightself。width:
  self。rect。rightself。speed
  else:
  self。rect。rightself。width
  defreset(self):
  self。rect。left,self。rect。top(self。widthself。rect。width)2,self。heightself。rect。height60
  self。activeTrue
  self。invincibleTrue
  设置敌人的飞机:设置敌人的飞机:设置敌人的飞机:设置敌人的飞机:设置敌人的飞机
  classSmallEnemy(pygame。sprite。Sprite):
  energy1
  definit(self,bgsize):
  super(SmallEnemy,self)。init()
  self。imagepygame。image。load(imagesenemy1。png)。convertalpha()
  self。destroyimages〔〕
  self。destroyimages。extend(〔
  pygame。image。load(imagesenemy1down1。png)。convertalpha(),
  pygame。image。load(imagesenemy1down2。png)。convertalpha(),
  pygame。image。load(imagesenemy1down3。png)。convertalpha(),
  pygame。image。load(imagesenemy1down4。png)。convertalpha()
  〕)
  self。rectself。image。getrect()
  self。width,self。heightbgsize〔0〕,bgsize〔1〕
  self。activeTrue
  self。maskpygame。mask。fromsurface(self。image)
  self。speed2
  self。reset()
  self。energySmallEnemy。energy
  self。hitFalse
  defmove(self):
  ifself。rect。topself。height:
  self。rect。topself。speed
  else:
  self。reset()
  defreset(self):
  self。rect。left,self。rect。toprandint(0,self。widthself。rect。width),randint(5self。height,0)
  self。activeTrue
  self。energySmallEnemy。energy
  classMidEnemy(pygame。sprite。Sprite):
  energy8
  definit(self,bgsize):
  super(MidEnemy,self)。init()
  self。imagepygame。image。load(imagesenemy2。png)。convertalpha()
  self。destroyimages〔〕
  self。destroyimages。extend(〔
  pygame。image。load(imagesenemy2down1。png)。convertalpha(),
  pygame。image。load(imagesenemy2down2。png)。convertalpha(),
  pygame。image。load(imagesenemy2down3。png)。convertalpha(),
  pygame。image。load(imagesenemy2down4。png)。convertalpha()
  〕)
  self。imagehitpygame。image。load(imagesenemy2hit。png)。convertalpha()
  self。rectself。image。getrect()
  self。width,self。heightbgsize〔0〕,bgsize〔1〕
  self。activeTrue
  self。speed1
  self。maskpygame。mask。fromsurface(self。image)
  self。reset()
  self。energyMidEnemy。energy
  self。hitFalse
  defmove(self):
  ifself。rect。topself。height:
  self。rect。topself。speed
  else:
  self。reset()
  defreset(self):
  self。rect。left,self。rect。toprandint(0,self。widthself。rect。width),randint(10self。height,self。height)
  self。activeTrue
  self。energyMidEnemy。energy
  classBigEnemy(pygame。sprite。Sprite):
  energy20
  definit(self,bgsize):
  super(BigEnemy,self)。init()
  self。image1pygame。image。load(imagesenemy3n1。png)。convertalpha()
  self。image2pygame。image。load(imagesenemy3n2。png)。convertalpha()
  self。destroyimages〔〕
  self。destroyimages。extend(〔
  pygame。image。load(imagesenemy3down1。png)。convertalpha(),
  pygame。image。load(imagesenemy3down2。png)。convertalpha(),
  pygame。image。load(imagesenemy3down3。png)。convertalpha(),
  pygame。image。load(imagesenemy3down4。png)。convertalpha(),
  pygame。image。load(imagesenemy3down5。png)。convertalpha(),
  pygame。image。load(imagesenemy3down6。png)。convertalpha()
  〕)
  self。imagehitpygame。image。load(imagesenemy3hit。png)。convertalpha()
  self。rectself。image1。getrect()
  self。width,self。heightbgsize〔0〕,bgsize〔1〕
  self。activeTrue
  self。speed1
  self。maskpygame。mask。fromsurface(self。image1)
  self。appearFalse
  self。reset()
  self。energyBigEnemy。energy
  self。hitFalse
  defmove(self):
  ifself。rect。topself。height:
  self。rect。topself。speed
  else:
  self。reset()
  defreset(self):
  self。rect。left,self。rect。toprandint(0,self。widthself。rect。width),randint(20self。height,10self。height)
  self。activeTrue
  self。energyBigEnemy。energy
  设置补给:设置补给:设置补给:设置补给:设置补给
  classBulletSupply(pygame。sprite。Sprite):
  definit(self,bgsize):
  super(BulletSupply,self)。init()
  self。imagepygame。image。load(imagesbulletsupply。png)。convertalpha()
  self。rectself。image。getrect()
  self。width,self。heightbgsize〔0〕,bgsize〔1〕
  self。rect。left,self。rect。bottomrandint(0,self。widthself。rect。width),100
  self。speed5
  self。activeFalse
  self。maskpygame。mask。fromsurface(self。image)
  defmove(self):
  ifself。rect。topself。height:
  self。rect。topself。speed
  else:
  self。activeFalse
  defreset(self):
  self。activeTrue
  self。rect。left,self。rect。bottomrandint(0,self。widthself。rect。width),100
  classBombSupply(pygame。sprite。Sprite):
  definit(self,bgsize):
  super(BombSupply,self)。init()
  self。imagepygame。image。load(imagesbombsupply。png)。convertalpha()
  self。rectself。image。getrect()
  self。width,self。heightbgsize〔0〕,bgsize〔1〕
  self。rect。left,self。rect。bottomrandint(0,self。widthself。rect。width),100
  self。speed5
  self。activeFalse
  self。maskpygame。mask。fromsurface(self。image)
  defmove(self):
  ifself。rect。topself。height:
  self。rect。topself。speed
  else:
  self。activeFalse
  defreset(self):
  self。activeTrue
  self。rect。left,self。rect。bottomrandint(0,self。widthself。rect。width),100
  设置我方发射子弹类
  classBullet1(pygame。sprite。Sprite):
  definit(self,position):
  super(Bullet1,self)。init()
  self。imagepygame。image。load(imagesbullet1。png)。convertalpha()
  self。rectself。image。getrect()
  self。rect。left,self。rect。topposition
  self。speed12
  self。activeTrue
  self。maskpygame。mask。fromsurface(self。image)
  defmove(self):
  self。rect。topself。speed
  ifself。rect。top0:
  self。activeFalse
  defreset(self,position):
  self。rect。left,self。rect。topposition
  self。activeTrue
  classBullet2(pygame。sprite。Sprite):
  definit(self,position):
  super(Bullet2,self)。init()
  self。imagepygame。image。load(imagesbullet2。png)。convertalpha()
  self。rectself。image。getrect()
  self。rect。left,self。rect。topposition
  self。speed14
  self。activeFalse
  self。maskpygame。mask。fromsurface(self。image)
  defmove(self):
  self。rect。topself。speed
  ifself。rect。top0:
  self。activeFalse
  defreset(self,position):
  self。rect。left,self。rect。topposition
  self。activeTrue
  主程序的实现:主程序的实现:主程序的实现:主程序的实现:主程序的实现
  defaddsmallenemies(group1,group2,num):
  foriinrange(num):
  e1SmallEnemy(bgsize)
  group1。add(e1)
  group2。add(e1)
  defaddmidenemies(group1,group2,num):
  foriinrange(num):
  e2MidEnemy(bgsize)
  group1。add(e2)
  group2。add(e2)
  defaddbigenemies(group1,group2,num):
  foriinrange(num):
  e3BigEnemy(bgsize)
  group1。add(e3)
  group2。add(e3)
  defincspeed(target,inc):
  foreachintarget:
  each。speedinc
  defmain():
  播放音乐
  pygame。mixer。music。play(1)
  实例化我方飞机
  meMyPlane(bgsizebgsize)
  实例化敌方飞机
  enemiespygame。sprite。Group()
  实例化敌方小型飞机
  smallenemiespygame。sprite。Group()
  addsmallenemies(smallenemies,enemies,15)
  实例化敌方中型飞机
  midenemiespygame。sprite。Group()
  addmidenemies(midenemies,enemies,4)
  实例化敌方大型飞机
  bigenemiespygame。sprite。Group()
  addbigenemies(bigenemies,enemies,2)
  实例化普通子弹
  bullet1〔〕
  bullet1index0
  BULLET1NUM4
  foriinrange(BULLET1NUM):
  bullet1。append(Bullet1((me。rect。centerx10,me。rect。centery)))
  实例超级子弹
  bullet2〔〕
  bullet2index0
  BULLET2NUM8
  foriinrange(BULLET2NUM2):
  bullet2。append(Bullet2((me。rect。centerx33,me。rect。centery)))
  bullet2。append(Bullet2((me。rect。centerx30,me。rect。centery)))
  中弹图片索引
  e1destroyindex0
  e2destroyindex0
  e3destroyindex0
  medestroyindex0
  统计得分
  score0
  scorefontpygame。font。Font(fontfont1。ttf,36)
  标志是否暂停游戏
  pausedFalse
  pausednorimagepygame。image。load(imagespausenor。png)。convertalpha()
  pausedpressedimagepygame。image。load(imagespausepressed。png)。convertalpha()
  resumenorimagepygame。image。load(imagesresumenor。png)。convertalpha()
  resumepressedimagepygame。image。load(imagesresumepressed。png)。convertalpha()
  pausedrectpausednorimage。getrect()
  pausedrect。left,pausedrect。topwidthpausedrect。width10,10
  pausedimagepausednorimage
  设置难度
  level1
  全屏炸弹
  bombimagepygame。image。load(imagesbomb。png)。convertalpha()
  bombrectbombimage。getrect()
  bombfontpygame。font。Font(fontfont1。ttf,48)
  bombnum3
  每20秒发放一个补给包
  bulletsupplyBulletSupply(bgsize)
  bombsupplyBombSupply(bgsize)
  SUPPLYTIMEUSEREVENT
  pygame。time。settimer(SUPPLYTIME,201000)
  DOUBLEBULLTETTIMEUSEREVENT1
  INVINCIBLETIMEUSEREVENT2
  标志是否使用超级子弹
  isdoublebulletFalse
  生命数量
  lifeimagepygame。image。load(imageslife。png)。convertalpha()
  liferectlifeimage。getrect()
  lifenum3
  用于切换我方飞机图片
  switchplaneTrue
  游戏结束画面
  gameoverfontpygame。font。Font(fontfont1。TTF,48)
  againimagepygame。image。load(imagesagain。png)。convertalpha()
  againrectagainimage。getrect()
  gameoverimagepygame。image。load(imagesgameover。png)。convertalpha()
  gameoverrectgameoverimage。getrect()
  用于延迟切换
  delay100
  recordedFalse
  clockpygame。time。Clock()
  runningTrue
  whilerunning:
  foreventinpygame。event。get():
  ifevent。typeQUIT:
  pygame。quit()
  sys。exit()
  elifevent。typeMOUSEBUTTONDOWN:
  ifevent。button1andpausedrect。collidepoint(event。pos):
  pausednotpaused
  ifpaused:
  pygame。time。settimer(SUPPLYTIME,0)
  pygame。mixer。music。pause()
  pygame。mixer。pause()
  else:
  pygame。time。settimer(SUPPLYTIME,201000)
  pygame。mixer。music。unpause()
  pygame。mixer。unpause()
  elifevent。typeMOUSEMOTION:
  ifpausedrect。collidepoint(event。pos):
  ifpaused:
  pausedimageresumepressedimage
  else:
  pausedimagepausedpressedimage
  else:
  ifpaused:
  pausedimageresumenorimage
  else:
  pausedimagepausednorimage
  elifevent。typeKEYDOWN:
  ifevent。keyKSPACE:
  ifbombnum:
  bombnum1
  bombsound。play()
  foreachinenemies:
  ifeach。rect。bottom0:
  each。activeFalse
  elifevent。typeSUPPLYTIME:
  supplysound。play()
  ifchoice(〔True,False〕):
  bombsupply。reset()
  else:
  bulletsupply。reset()
  elifevent。typeDOUBLEBULLTETTIME:
  isdoublebulletFalse
  pygame。time。settimer(DOUBLEBULLTETTIME,0)
  elifevent。typeINVINCIBLETIME:
  me。invincibleFalse
  pygame。time。settimer(INVINCIBLETIME,0)
  根据用户得分增加难度
  iflevel1andscore5000:
  level2
  upgradesound。play()
  增加3架小型敌机,2架中型敌机和1架大型敌机
  addsmallenemies(smallenemies,enemies,3)
  addmidenemies(midenemies,enemies,2)
  addbigenemies(bigenemies,enemies,1)
  提升小型敌机的速度
  incspeed(targetsmallenemies,inc1)
  eliflevel2andscore30000:
  level3
  upgradesound。play()
  增加5架小型敌机,3架中型敌机和2架大型敌机
  addsmallenemies(smallenemies,enemies,5)
  addmidenemies(midenemies,enemies,3)
  addbigenemies(bigenemies,enemies,2)
  提升小型敌机的速度
  incspeed(targetsmallenemies,inc1)
  incspeed(targetmidenemies,inc1)
  eliflevel3andscore60000:
  level4
  upgradesound。play()
  增加5架小型敌机,3架中型敌机和2架大型敌机
  addsmallenemies(smallenemies,enemies,5)
  addmidenemies(midenemies,enemies,3)
  addbigenemies(bigenemies,enemies,2)
  提升小型敌机的速度
  incspeed(targetsmallenemies,inc1)
  incspeed(targetmidenemies,inc1)
  eliflevel4andscore100000:
  level5
  upgradesound。play()
  增加5架小型敌机,3架中型敌机和2架大型敌机
  addsmallenemies(smallenemies,enemies,5)
  addmidenemies(midenemies,enemies,3)
  addbigenemies(bigenemies,enemies,2)
  提升小型敌机的速度
  incspeed(targetsmallenemies,inc1)
  incspeed(targetmidenemies,inc1)
  incspeed(targetbigenemies,inc1)
  screen。blit(background,(0,0))
  iflifenumandnotpaused:
  检测键盘按键操作
  keypressedpygame。key。getpressed()
  ifkeypressed〔Kw〕orkeypressed〔KUP〕:
  me。moveUp()
  ifkeypressed〔Ks〕orkeypressed〔KDOWN〕:
  me。moveDown()
  ifkeypressed〔Ka〕orkeypressed〔KLEFT〕:
  me。moveLeft()
  ifkeypressed〔Kd〕orkeypressed〔KRIGHT〕:
  me。moveRight()
  绘制全屏炸弹补给
  ifbombsupply。active:
  bombsupply。move()
  screen。blit(bombsupply。image,bombsupply。rect)
  ifpygame。sprite。collidemask(me,bombsupply):
  getbombsound。play()
  ifbombnum3:
  bombnum1
  bombsupply。activeFalse
  绘制超级子弹补给
  ifbulletsupply。active:
  bulletsupply。move()
  screen。blit(bulletsupply。image,bulletsupply。rect)
  ifpygame。sprite。collidemask(me,bulletsupply):
  getbulletsound。play()
  发射超级子弹
  isdoublebulletTrue
  pygame。time。settimer(DOUBLEBULLTETTIME,181000)
  bulletsupply。activeFalse
  发射子弹
  ifnot(delay10):
  bulletsound。play()
  ifisdoublebullet:
  bulletsbullet2
  bullets〔bullet2index〕。reset(
  (me。rect。centerx40,me。rect。centery))
  bullets〔bullet2index
  1〕。reset((me。rect。centerx20,me。rect。centery))
  bullet2index(bullet2index2)BULLET2NUM
  else:
  bulletsbullet1
  bullets〔bullet1index〕。reset((me。rect。centerx10,me。rect。centery10))
  bullet1index(bullet1index1)BULLET1NUM
  碰撞检测检测子弹是否击中敌机
  forbinbullets:
  ifb。active:
  b。move()
  screen。blit(b。image,b。rect)
  enemyhitpygame。sprite。spritecollide(
  b,enemies,False,pygame。sprite。collidemask)
  ifenemyhit:
  b。activeFalse
  foreachinenemyhit:
  each。hitTrue
  each。energy1
  ifeach。energy0:
  each。activeFalse
  绘制敌方大型机
  foreachinbigenemies:
  ifeach。active:
  each。move()
  ifeach。hit:
  screen。blit(each。imagehit,each。rect)
  each。hitFalse
  else:
  ifswitchplane:
  screen。blit(each。image1,each。rect)
  else:
  screen。blit(each。image2,each。rect)
  绘制血条
  pygame。draw。line(screen,BLACK,
  (each。rect。left,each。rect。top5),
  (each。rect。right,each。rect。top5),
  2)
  energyremaineach。energyBigEnemy。energy
  ifenergyremain0。2:
  energycolorGREEN
  else:
  energycolorRED
  pygame。draw。line(screen,energycolor,
  (each。rect。left,each。rect。top5),
  (each。rect。lefteach。rect。widthenergyremain,
  each。rect。top5),
  2)
  ifeach。rect。bottom10:
  enemy3flysound。play(1)
  each。appearTrue
  离开画面,关闭音效
  iflifenum:
  foriinrange(lifenum):
  screen。blit(lifeimage,
  ((width10(i1)liferect。width),
  height10liferect。height))
  绘制得分
  ifeach。rect。bottom10andeach。appear:
  enemy3flysound。stop()
  each。appearFalse
  else:
  毁灭
  ife3destroyindex0:
  enemy3downsound。play()
  ifnot(delay2):
  screen。blit(each。destroyimages〔
  e3destroyindex〕,each。rect)
  e3destroyindex(e3destroyindex1)6
  ife3destroyindex0:
  enemy3flysound。stop()
  score1000
  each。reset()
  绘制敌方中型机
  foreachinmidenemies:
  ifeach。active:
  each。move()
  ifeach。hit:
  screen。blit(each。imagehit,each。rect)
  each。hitFalse
  else:
  screen。blit(each。image,each。rect)
  绘制血槽
  pygame。draw。line(screen,BLACK,
  (each。rect。left,each。rect。top5),
  (each。rect。right,each。rect。top5),
  2)
  当生命大于20显示绿色,否则显示红色
  energyremaineach。energyMidEnemy。energy
  ifenergyremain0。2:
  energycolorGREEN
  else:
  energycolorRED
  pygame。draw。line(screen,energycolor,
  (each。rect。left,each。rect。top5),
  (each。rect。lefteach。rect。widthenergyremain,
  each。rect。top5),
  2)
  else:
  毁灭
  ife2destroyindex0:
  enemy2downsound。play()
  ifnot(delay2):
  screen。blit(each。destroyimages〔
  e2destroyindex〕,each。rect)
  e2destroyindex(e2destroyindex1)4
  ife2destroyindex0:
  score600
  each。reset()
  绘制敌方小型机
  foreachinsmallenemies:
  ifeach。active:
  each。move()
  screen。blit(each。image,each。rect)
  else:
  毁灭
  ife1destroyindex0:
  enemy1downsound。play()
  ifnot(delay2):
  screen。blit(each。destroyimages〔
  e1destroyindex〕,each。rect)
  e1destroyindex(e1destroyindex1)4
  ife1destroyindex0:
  score100
  each。reset()
  检测我方飞机碰撞
  enemiesdownpygame。sprite。spritecollide(
  me,enemies,False,pygame。sprite。collidemask)
  ifenemiesdownandnotme。invincible:
  me。activeFalse
  foreachinenemiesdown:
  each。activeFalse
  绘制我方飞机
  ifme。active:
  ifswitchplane:
  screen。blit(me。image1,me。rect)
  else:
  screen。blit(me。image2,me。rect)
  else:
  毁灭
  ifmedestroyindex0:
  medownsound。play()
  ifnot(delay2):
  screen。blit(me。destroyimages〔medestroyindex〕,me。rect)
  medestroyindex(medestroyindex1)4
  ifmedestroyindex0:
  lifenum1
  me。reset()
  pygame。time。settimer(INVINCIBLETIME,31000)
  绘制全屏炸弹数量
  bombtextbombfont。render(dbombnum,True,WHITE)
  textrectbombtext。getrect()
  screen。blit(bombimage,(10,height10bombrect。height))
  screen。blit(bombtext,(20bombrect。width,height5textrect。height))
  绘制剩余生命数量
  scoretextscorefont。render(Score:dscore,True,WHITE)
  screen。blit(scoretext,(10,5))
  绘制游戏结束画面
  eliflifenum0:
  背景音乐停止
  pygame。mixer。music。stop()
  pygame。mixer。stop()
  停止发放补给
  pygame。time。settimer(SUPPLYTIME,0)
  ifnotrecorded:
  recordedTrue
  读取历史最高分
  withopen(record。txt,r)asf:
  recordscoreint(f。read())
  判断是否高于历史最高分
  ifscorerecordscore:
  withopen(record。txt,w)asf:
  f。write(str(score))
  绘制结束界面
  recordscoretextscorefont。render(Best:drecordscore,True,(255,255,255))
  screen。blit(recordscoretext,(10,45))
  gameovertext1gameoverfont。render(YourScore,True,(255,255,255))
  gameovertext1rectgameovertext1。getrect()
  gameovertext1rect。left,gameovertext1rect。top(widthgameovertext1rect。width)2,height3
  screen。blit(gameovertext1,gameovertext1rect)
  gameovertext2gameoverfont。render(str(score),True,(255,255,255))
  gameovertext2rectgameovertext2。getrect()
  gameovertext2rect。left,gameovertext2rect。top(widthgameovertext2rect。width)2,gameovertext1rect。bottom10
  screen。blit(gameovertext2,gameovertext2rect)
  againrect。left,againrect。top(widthagainrect。width)2,gameovertext2rect。bottom50
  screen。blit(againimage,againrect)
  gameoverrect。left,gameoverrect。top(widthagainrect。width)2,againrect。bottom10
  screen。blit(gameoverimage,gameoverrect)
  如果用户按下鼠标左键
  ifpygame。mouse。getpressed()〔0〕:
  获取鼠标坐标
  pospygame。mouse。getpos()
  ifagainrect。leftpos〔0〕againrect。rightandagainrect。toppos〔1〕againrect。bottom:
  main()
  elifgameoverrect。leftpos〔0〕gameoverrect。rightandgameoverrect。toppos〔1〕gameoverrect。bottom:
  pygame。quit()
  sys。exit()
  screen。blit(pausedimage,pausedrect)
  ifnot(delay11):
  switchplanenotswitchplane
  delay1
  ifnotdelay:
  delay100
  pygame。display。flip()
  clock。tick(60)
  ifnamemain:
  main()
投诉 评论

残疾人生活状况调查与研究姚彦斐莫振平霍威龙胡建新(541004桂林电子科技大学法学院广西桂林)摘要:残疾人是社会的一个特殊的群体,建立健全残疾人保障事业是我国整个社会保障体系的重点内容。本……记录我的上岸之旅15之旧的不去新的不来年轻就是好,年轻有大把的时间和精力,年轻就是搞对象的时候,现在回过头来看,也挥霍了年轻时光,但是每个人的活法都不一样,只要自己觉得值就行,不后悔就行我跟考研女越来越感觉不……LoroPianaCocooning系列被羊绒包裹着的轻松愉一段和谐的旅程,始于纹理、穿越色彩,最终呈现柔软亲肤的成衣,打造自由无拘的穿着体验。全新系列服饰轻盈舒适,从日常生活到重要场合,从独处时光到欢聚时刻,皆可游刃有余。各位女神也是……坚持下去,全力以赴自律生活头条创作挑战赛我们这一代人什么事情都想要快从来没有把一件事坚持很久但成功需要时间我希望从今天开始,把跳绳这件事做下去。想要减脂,平常也没什么时间锻……Python开发飞机大战小游戏代码开源效果展示:实现功能:1:飞机的移动,发射子弹,手雷,生命值,生命条2:敌飞机有3种形态(小,中,大)不同的飞机大小不一样,生命值不一样,爆炸动画也不一样……连续19年蝉联内存第一不是盖的!金士顿疯狂杀价友商都懵圈了临近岁末收官,最新一期的大陆内存品牌出货榜单由博板堂公布。TOP5位次依次是金士顿、威刚、海盗船、金泰克、辛士达和七彩虹。据悉,这里的出货不含行业出货和OEM出货。……承接东部地区产业转移,攀枝花准备好了吗?20世纪80年代初,新中国成立深圳、珠海、厦门、汕头、海南五大经济特区。此后,又陆续开放14个沿海开放城市,进而扩大沿边、沿江地区开放。凭借着地理区位优势和生产配套优势,东部沿……淘宝信用卡支付怎么开通信用卡支付开通流程淘宝信用卡支付怎么开通?如果没有开通信用卡收款,那可能会损失那些非信用卡付款不可的客户生意。其实开通信用卡收款的流程是很简单的,下面小编为你介绍信用卡支付开通流程。如果你……解读投屏行业独角兽乐播投屏有何技术优势?大家都知道在投屏行业目前国内做行业TOP1,以及用户覆盖量达2。8亿,10000视频APP接入SDK的乐播投屏,在产品和技术上有什么优势呢?乐播投屏是一款安卓用户使用的多……微信什么时候才实现双删感谢您的阅读!明明对方已经将我删除了,却还躺在我的通讯录里!微信双删有两个意思:删除对方,对方的好友列表中将没有你(双向删除好友功能)删除刚才的对话记录……最新发布河南省又一批建设项目名单公布,看看有你在的城市吗?经河南省政府同意,印发《河南省2022年重点项目实施方案》,聚焦机械电子电器、园林景区绿化、建材等10大重点领域,项目清单如下:1。焦作云台山旅游发展有限公司云台山泉瀑峡……团队凝聚力读后感二篇团队凝聚力读后感(一)参加拓展训练回来将近一周了,感受很多,其中有效沟通、团队力量、统筹规划这三方面更是印象深刻。一、有效沟通要想团队共同发展,团队成员就必须……
我爱祖国的蓝天煮豆苹果销量急剧下滑,国产旗舰却销量猛增?手机行业转折点已至?产后奶少用什么药好产后脱发有哪些食疗妙方农历生日看你身边是否多贵人李小冉白色碎钻抹胸长裙随性自在美爆了涨知识准妈妈喝水也有讲究真爱是心灵与智慧的交换拒绝高冷勿近人得体穿搭助力御姐变软萌游新加坡关于夏天的朋友圈句子浅析大学生村官创业的四种思维误区杨幂新恋情,疑深夜酒店约会一夜未出离开时充满不舍超市还有这么好的收银员?北京影享众惠科技有限公司一节与众不同的作文课手机号码身份证查询通话记录吗(有身份证号码怎么查通话记录)景区冬季预防火灾措施有哪些来看看这些令男人补肾的水果哦黑天鹅与白天鹅今天开始是魔王如何让你遇见我(如何让你遇见我,在我最美丽的时刻)如何有效完善公证法律服务体系

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找