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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。