【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~

导语

【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~

【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~

🎈泡泡王国 欢乐多多 🎈

咕噜噜,吹泡泡,七彩泡泡满天飘。大的好像彩气球,小的就像紫葡萄。

​当泡泡漫天飞舞时,大朋友、小朋友都会情不自禁地被它吸引。而当珍珠般的泡泡遇上可

爱的程序员门时,又会出现什么样的美丽风景呢?

所有文章完整的素材+源码都在👇👇

粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。

说到4399小游戏,没有人会陌生吧?我小时候经常趁着家长不在家的时候偷偷打开电脑打开小

游戏的网页,在电脑桌前一坐就是一下午,真的不能赖我不适可而止,而是这些游戏真的太好

玩了!关于童年的经典游戏and有关泡泡的,之前已经仿写了一款童年《泡泡龙》游戏!👇👇

Pygame实战:风靡全球的经典泡泡龙小游戏来袭,你会喜欢嘛?(附源码)

今天续写另一个版本的泡泡故事叭💨💨💨💨💨💨

(当然之前写过很多经典小游戏滴:大家可以🤶 戳文末汇总看全部的代码哦🤶~)

【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~

正文

一、环境安装

1)素材(图片)

【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~

嘻嘻🤭 很久没写游戏了,先写个简单的大家润润喉~

2)运行环境

小编使用的环境:Python3、Pycharm社区版、Pygame 模块部分自带就不一一

展示啦。

 模块安装:pip install -i https://pypi.douban.com/simple/+模块名

二、代码展示

import pygame,random,os
from pygame.locals import *
from pygame.sprite import Sprite,Group,spritecollide
def load_image(name):
    fullname=os.path.join(os.path.join(os.path.split(os.path.abspath(__file__))[0],"filedata"),name)
    image=pygame.image.load(fullname)
    return image
class Surface:
    def __init__(self,screen):
        self.screen=screen
        self.screenrect=self.screen.get_rect()
        self.surfacetype=1
        self.image=load_image("surface"+str(self.surfacetype)+".png")
        self.rect=self.image.get_rect()
        self.rect.center=self.screenrect.center
        self.speed=3.5
        self.moveUp=False
        self.moveDown=False
        self.moveLeft=False
        self.moveRight=False
    def update(self):
        if self.moveUp and self.rect.top>0:
            self.rect.centery-=self.speed
        if self.moveDown and self.rect.bottom<height: self.rect.centery+="self.speed" if self.moveleft and self.rect.left>0:
            self.rect.centerx-=self.speed
        if self.moveRight and self.rect.right<width: self.rect.centerx+="self.speed" def blit(self): self.screen.blit(self.image,self.rect) addtype(self): self.surfacetype+="1" if self.surfacetype>3:
            self.surfacetype=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 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("&#x9ED1;&#x4F53;",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) rates%1000="=0" and rates!="0:" colortype+="1" traptype+="1">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()</0:></0:></width:></height:>

三、效果展示

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

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

1)随机截图一

【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~

2)随机截图二

【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~

3)撞击结束

【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~

总结

嘿嘿,文章到这里就正式结束啦,有爱玩儿游戏的小朋友可以关注下我哦~

不仅可以给大家推荐游戏还有代码版本,能玩儿能学一举两得啦!之前还写过几十个,代码可以免

费滴,之前关注的都知道!有爱的源码记得找我拿哈!

🎯完整的免费源码领取处:找我吖!文末可得自行领取,滴滴我也可!

🔨推荐往期文章——

项目1.0 超级玛丽

程序员自制游戏:超级玛丽100%真实版,能把你玩哭了~【附源码】

项目1.1 扫雷

Pygame实战:据说这是史上最难扫雷游戏,没有之一,你们感受下……

项目1.3 太空机甲游戏

Pygame实战:牛,几千行代码实现《机甲闯关冒险游戏》,太牛了(保存起来慢慢学)

项目1.4 水果忍者

【Pygame实战】风靡全球的切水果游戏升级版”水果忍者”上线啦,你敢来PK嘛?

项目2.0 联网、人机一体五子棋游戏

Pygame实战:下五子棋吗?信不信我让你几步你也赢不了?

🎄文章汇总——

项目1.0 Python—2021 |已有文章汇总 | 持续更新,直接看这篇就够了

(更多内容+源码都在文章汇总哦!!欢迎阅读~)

【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~

Original: https://blog.csdn.net/weixin_55822277/article/details/125670634
Author: 顾木子吖
Title: 【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/779770/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球