pygame做游戏,

  pygame做游戏,

  本文主要介绍如何使用Python中的Pygame模块实现泡泡游戏。文中的样例代码讲解的很详细,对我们学习Python游戏开发很有帮助。有需要的可以参考一下。

  00-1010介绍一、环境安装二、代码显示三、效果显示

  

目录

 

  泡泡王国充满欢乐。

  露露,吹泡泡,五颜六色的泡泡满天飘。大的像彩色气球,小的像紫葡萄。

  当泡泡满天飞的时候,大朋友和小朋友都忍不住被它们吸引。而当珍珠般的泡泡遇上可爱的程序员门,会出现怎样的美景?

  说起4399游戏,没有人会陌生吧?小时候经常趁父母不在的时候偷偷打开电脑打开小游戏的网页。我整个下午都坐在电脑桌前。我真的停不下来,因为这些游戏真的很棒。

  玩吧!关于经典童年游戏,关于泡泡,之前抄袭过一个童年游戏《泡泡龙》!

  Pygame实战:风靡全球的经典泡泡龙游戏来了。

  今天继续写另一个版本的泡沫故事。

  

导语

 

  1)材料(图片)

  嘻嘻,好久没写游戏了。来写个简单的润润嗓子吧~

  2)操作环境

  边肖的环境:Python3,Pycharm社区版,Pygame模块就不一一展示了。

  设置:pip install-I https://pypi.douban.com/simple/模块名称

  

一、环境安装

 

  导入pygame,随机,操作系统

  从pygame.locals导入*

  从pygame.sprite导入sprite,Group,spritecollide

  定义加载图像(名称):

  full name=OS . path . join(OS . path . join(OS . path . split(OS . path . ABS path(_ _ file _ _)[0], filedata ),name)

  image=pygame.image.load(全名)

  返回图像

  班级表面:

  def __init__(自身,屏幕):

  自我屏幕=屏幕

  self . screen rect=self . screen . get _ rect()

  self.surfacetype=1

  self . image=load _ image( surface str(self . surface type))。png’)

  self.rect=self.image.get_rect()

  self . rect . center=self . screen rect . center

  自身速度=3.5

  self.moveUp=False

  self.moveDown=False

  self.moveLeft=False

  self.moveRight=False

  定义更新(自身):

  if self.moveUp和self.rect.top0:

  自我纠正中心=自我速度

  if self.moveDown和self.rect.bottomHEIGHT:

  self . rect . centry=self . speed

  if self.moveLeft和self.rect.left0:

  self . rect . centex-=self . speed

  if self.moveRight和self.rect.rightWIDTH:

  self . rect . centex=self . speed

  def blit(self):

  self.screen.blit(self.image,self.rect)

  定义添加类型(自身):

  self.surfacetype=1

  if self.surfacetype3:

  self.surfac

  etype=1

   self.image=load_image("surface"+str(self.surfacetype)+".png")

  class Trap(Sprite):

   def __init__(self,screen,traptyper):

   super(Trap,self).__init__()

   self.screen=screen

   self.screenrect=self.screen.get_rect()

   self.traptype=traptyper

   self.image=load_image("trap"+str(self.traptype)+".png")

   self.rect=self.image.get_rect()

   self.rectat=random.choice(["top","left","right","bottom"])

   self.__updatespeed()

   def __updatespeed(self):

   self.xspeed=round(random.uniform(1,3),2)

   self.yspeed=round(random.uniform(1,3),2)

   if self.rectat=="top":

   self.rect.center=(random.randint(0,WIDTH),0)

   elif self.rectat=="bottom":

   self.rect.center=(random.randint(0,WIDTH),HEIGHT)

   self.yspeed=-self.yspeed

   elif self.rectat=="left":

   self.xspeed=-self.xspeed

   self.rect.center=(0,random.randint(0,HEIGHT))

   elif self.rectat=="right":

   self.rect.center=(WIDTH,random.randint(0,HEIGHT))

   def update(self):

   global traptype

   self.traptype=traptype

   self.image=load_image("trap"+str(self.traptype)+".png")

   self.rect.centerx+=self.xspeed

   self.rect.centery+=self.yspeed

   if self.rect.top>self.screenrect.height or self.rect.bottom<0:

   self.kill()

   elif self.rect.left>self.screenrect.width or self.rect.right<0:

   self.kill()

  WIDTH=1200

  HEIGHT=650

  traptype=1

  def initmain():

   global traptype

   traptype=1

   pygame.init()

   screen=pygame.display.set_mode((WIDTH,HEIGHT))

   pygame.display.set_caption("泡泡王国")

   bgcolorlist=((0,255,255),(255,128,0),(128,0,255))

   colortype=0

   bgcolor=bgcolorlist[colortype]

   rates=0

   gamestart=True

   fpstime=pygame.time.Clock()

   fps=100

   gameFont=pygame.font.SysFont("黑体",26,True)

   surface=Surface(screen)

   traps=Group()

   while gamestart:

   fpstime.tick(fps)

   screen.fill(bgcolor)

   surface.blit()

   rates+=1

   if rates%20==0:

   newtrap=Trap(screen,traptype)

   traps.add(newtrap)

   if rates%1000==0 and rates!=0:

   colortype+=1

   traptype+=1

   if colortype>2:

   colortype=0

   if traptype>3:

   traptype=1

   bgcolor=bgcolorlist[colortype]

   surface.addtype()

   if spritecollide(surface,traps,True):

   screen.fill(bgcolor)

   gamestart=False

   break

   screen.blit(gameFont.render("Score: "+str(rates),True,(0,0,0)),(2,2))

   surface.update()

   traps.update()

   traps.draw(screen)

   for event in pygame.event.get():

   if event.type==QUIT:

   gamestart=False

   elif event.type==KEYDOWN:

   if event.key==K_RIGHT:

   surface.moveRight=True

   elif event.key==K_LEFT:

   surface.moveLeft=True

   elif event.key==K_UP:

   surface.moveUp=True

   elif event.key==K_DOWN:

   surface.moveDown=True

   elif event.key==K_SPACE:

   surface.speed=4.5

   elif event.type==KEYUP:

   if event.key==K_RIGHT:

   surface.moveRight=False

   elif event.key==K_LEFT:

   surface.moveLeft=False

   elif event.key==K_UP:

   surface.moveUp=False

   elif event.key==K_DOWN:

   surface.moveDown=False

   elif event.key==K_SPACE:

   surface.speed=3.5

   pygame.display.flip()

   screen.fill(bgcolor)

   screen.blit(gameFont.render("Score: "+str(rates//30),True,(0,0,0)),(2,2))

   screen.blit(gameFont.render("Press enter to retry ; Press ESC to exit",True,(0,0,0)),(6,32))

   screen.blit(gameFont.render("Rules:",True,(0,0,0)),(6,82))

   screen.blit(gameFont.render("Press the arrow keys to control the bubbles to avoid touching the stinging ball and press the space bar to speed up.",

   True,(0,0,0)),(66,112))

   pygame.display.flip()

   while True:

   for event in pygame.event.get():

   if event.type==QUIT:

   pygame.quit()

   __import__("sys").exit()

   elif event.type==KEYDOWN:

   if event.key==K_RETURN:

   pygame.quit()

   initmain()

   elif event.key==K_ESCAPE:

   pygame.quit()

   __import__("sys").exit()

  if __name__=="__main__":

   initmain()

  

  

 

  

三、效果展示

 

  游戏规则:Enter开始游戏,ESC退出游戏,上下左右键按住泡泡移动。躲避随机出现的陨石

  哦!躲避的时间越长,分数越高啦!勇士们开始你门的挑战叭!

  1)随机截图一

  

 

  2)随机截图二

  

 

  3)撞击结束

  

 

  以上就是Python+Pygame实战之泡泡游戏的实现的详细内容,更多关于Python Pygame泡泡游戏的资料请关注盛行IT软件开发工作室其它相关文章!

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

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