专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

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

  效果展示:
  实现功能:
  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()

鲁大师新机流畅榜OPPOvivo包揽前5名,荣耀跻身前10名鲁大师发布11月份安卓手机流畅榜,通过模拟手机运行综合评判给出结果,最终发现OPPOReno9系列vivoX90系列霸榜前5名。与此同时,宣称比鸿蒙系统更流畅的MagicVs只拿下苹果iOS16。1。2发布!很多功能增强改善了苹果的iOS一直有很多新奇的功能,每次更新都会带来最新的体验,如今现在已经更新到了iOS16。1。2。在这次更新中,主要改善提升了iPhone14和iPhone14Pro车祸检测功算术级数中的素数数学天才狄利克雷的解析数论狄利克雷特征解析数论中不可或缺的工具研究素数最强大的工具之一是狄利克雷特征理论解析数论之父的一项伟大发明。然而,在解释它们是什么之前,我们将首先尝试理解为什么需要它们。好主意180利率降至3。2,招行抵押欲抢夺千万内中长期市场本文写于2022年11月,保鲜期三个月,适用地上海。要点引用招行方案比较适合利润可观,长期用款的老板们。实测中,存货周转率低且利润率高的老板更喜欢招行中长期等本方案,利率3。2。招Web3。0概念站上风口,微美全息积极布局有望持续利好当你对Web3。0的了解还处于迷惑或一片漆黑的状态时,殊不知,它已经被投资人和创业者广泛追捧。当下Web3。0,已成为新的风口蓝海,正如雨后春笋般涌现。Web3。0的概念意义Web2023第11届济南国际生物发酵产品与技术装备展览会2023第11届国际生物发酵产品与技术装备展览会(济南)2023年3月30日4月1日山东国际会展中心支持单位山东省工商业联合会山东省商务厅山东省工业和信息化厅主办单位中国生物发酵产上海旧改怎么改?看看百年张园这个样本中国经济周刊记者宋杰上海报道11月27日,位于上海中心城区首个采用留改拆的城市更新试点项目张园西区正式亮相。建造于1882年的张园,汇聚了上海开埠以来多种不同建筑风格的石库门里弄住独家恒大汽车要求12月底前全员搬往天津,许家印12月1日在广州开会凤凰WEEKLY地产从接近恒驰汽车的可靠信源处独家获悉,恒大汽车广州工厂已出售给广州某国资车企,内部要求全部员工在今年12月底前搬往天津。另外,有消息称恒大集团12月2日的月度工作尾盘前45分钟,主力资金大幅买入100股名单一主力流入收盘前45分钟,主力资金大幅买入最多的100股时间2022年12月2日140502序号代码名称最新价涨跌幅主力净流入主力流入净占比1hr688489hrN三未121。15注意!城乡居民医保集中缴费期截至月底!爱山东缴费有疑问看这里注意!城乡居民医保集中缴费期截至月底!爱山东缴费有疑问看这里注意!2023年度城乡居民医保集中缴费期截至本月底结束还没缴费的小伙伴快来爱山东社保费缴纳专区缴费逾期未缴可能会影响你明中非经贸博览会推动百亿项目落地中企打造索马里海洋资源全产业链湖南日报12月1日讯(全媒体记者黄婷婷)记者今天从索马里联邦政府渔业海洋资源部官网获悉日前,在索马里首都摩加迪沙,索马里渔业海洋资源部与中国超粮控股(集团)有限公司签约6个项目,预
与陆毅同居4年被嫌弃,隐婚生女被抛弃,46岁当女老板身价过十亿2001年,田海蓉公开指责陆毅他就是抛弃我的陈世美,而鲍蕾就是那个第三者。彼时的陆毅,凭借永不瞑目成了大陆当红小生。田海蓉的指责,立刻把他推上了风口浪尖。而正和陆毅热恋的鲍蕾,反唇我给没有血缘关系的爷爷买了套房,结果亲奶奶要将我告上法庭你这个白眼狼,不给我买房子,居然给那个瘸子老头买房,亲奶奶你不孝顺,给一个外人当孝顺孙子!说出这话的是我那位血缘关系意义上的亲奶奶。面对她的质问和责骂我无动于衷,只是冷漠地跟她说了陕西老太救下受伤鹦鹉,多年后老太病重垂危,鹦鹉报恩解开老太遗憾1999年,经历失恋和失业双重打击的陕西女子田宁宁刚回到家,就被家人逼婚,田宁宁虽一再拒绝,却遭到家人变本加厉的逼迫。只有一向与家人关系冷淡的奶奶,出人意料地支持着她。奶奶突然病重19个带有特殊含义的纹身我女儿2岁时给我画了一张照片。7年后,它永远在我身上。我的第一个纹身小而简单。我选择它是因为我喜欢物理。这是phi。它在物理学中用于磁通量或其他科学分支中的黄金比例。当我7岁的时候汽车早餐国内新闻国务院延续免征新能源汽车购置税政策国务院总理李克强7月29日主持召开国务院常务会议,部署进一步扩需求举措,推动有效投资和增加消费。其中对汽车领域,会议指出,除个别地区外,限太和新闻太和智库礼聘马云涛先生为高级研究员2022年7月30日,太和智库举行仪式,礼聘马云涛先生为高级研究员。马云涛先生,毕业于中国人民公安大学,长期从事与国家安全事务相关的工作,对于相关领域工作具有丰富的实操经验与深入的女排队长大婚,郎平无法到场张常宁和吴冠希这对体坛神仙眷侣大婚。张常宁是江苏女排队长,中国女排主力主攻手,身高1。95米的世界杯和奥运会金牌得主。吴冠希是江苏男篮的主力中锋,他最近两个赛季的进步有目共睹,两人里约6朵金花张常宁婚礼团聚!惠若琪魏秋月当妈,朱婷等4人仍在拼搏7月30日消息,30日下午,中国女排奥运冠军张常宁和江苏男篮中锋吴冠希在杭州大婚,2016年里约奥运会中国女排12大冠军中6大冠军聚首,惠若琪魏秋月等前来捧场,刘晓彤当伴娘,而原中什么?95后张常宁结婚竟属早婚?41岁赵蕊蕊领衔排坛剩女榜单95后张常宁大婚背后排坛出现剩女扎堆现象,赵蕊蕊41岁领衔今天,排坛美女张常宁与CBA球员吴冠希举行婚礼。这对神仙眷侣引发了整个体育圈的祝福。张常宁出生于1995年,按照道理,27为何郎平回国却不参加张常宁婚礼,踩点飞走?师徒彼此心照不宣女排奥运冠军张常宁今天在杭州与男篮运动员吴冠希举行结婚典礼,因为两人都是体育明星,圈内众多好友都送去新婚祝福。伴郎团和伴娘团都是或曾是运动员,最高伴娘团也登上热搜榜单。在众多祝福视张常宁吴冠希大婚!惠若琪魏秋月5朵金花捧场,郎平临时有事缺席7月30日消息,30日,中国女排奥运冠军张常宁和江苏男篮中锋吴冠希在杭州大婚,江苏女排的众姐妹几乎全部赶到,而惠若琪魏秋月等中国女排队友前来捧场,而原中国女排主教练郎平遗憾缺席。张
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网