返回顶部
首页 > 资讯 > 后端开发 > Python >Pygame实战练习之保护单身狗游戏
  • 136
分享到

Pygame实战练习之保护单身狗游戏

2024-04-02 19:04:59 136人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

导语 各位戏精大家好!我是木木子,这个中秋已经结束了,你们都带着对象回家了码? 中秋那几天朋友圈简直是大型秀恩爱现场。 又是一年中秋夜,依旧凭实力单身!呼吁大家记得保护下单身狗啊喂!

导语

各位戏精大家好!我是木木子,这个中秋已经结束了,你们都带着对象回家了码?

中秋那几天朋友圈简直是大型秀恩爱现场。

又是一年中秋夜,依旧凭实力单身!呼吁大家记得保护下单身狗啊喂!

图片

作为一条人畜无害可可爱爱的单身狗

每年的假期几乎都被伤的体无完肤,今年我们不仅要好好生存,还要勇敢报复,让情侣们知道:

单身狗不是这么好欺负的~单身狗们报仇吧!今天带大家写一款贼有趣的单身狗小游戏~

图片

正文

首先准备好图片素材等:

bgm音乐必备:


import pygame
 
class Sound():
    def __init__(self):
        pygame.mixer.music.load('../sound/baab.mp3')
        pygame.mixer.music.play()

​先上效果图嘿嘿嘿 看好哈:

游戏界面——

程序运行——

(1)设置滚动的背景:


#地图滚动
import pygame
import random
 
class GameBackground(object):
    # 初始化地图
    def __init__(self, scene):
        # 加载相同张图片资源,做交替实现地图滚动
        self.image1 = pygame.image.load("../image/background.png")
        self.image2 = pygame.image.load("../image/background.png")
        # 保存场景对象
        self.main_scene = scene
        # 辅助移动地图
        self.x1 = 0
        self.x2 = 1280
        self.snowflag=False
 
    # 计算地图图片绘制坐标
    def action(self):
        self.x1 = self.x1 - 1
        self.x2 = self.x2 - 1
        if self.x1 <= -1279:
            self.x1 = 1279
        if self.x2 <= -1279:
            self.x2 = 1279
 
    # 绘制地图的两张图片
    def draw(self):
        self.main_scene.blit(self.image1, (self.x1,0))
        self.main_scene.blit(self.image2, (self.x2,0))
 
 
class Snow():
                # 雪花的竖直速度
    def __init__(self):
        self.x = 0  # 雪花的横坐标
        self.y = 0  # 雪花的纵坐标
        self.vx = 0  # 雪花的水平速度
        self.vy = 0
        self.x = random.randint(0,1280)   # 初始化雪花横坐标
        self.y = random.randint(0,390)   #初始化雪花纵坐标
    def getsnowpos(self):
        return self.x,self.y         # 返回雪花坐标位置

(2)单身狗不能碰到情侣检测碰撞:


import pygame
 
 
class Collide():
    def __init__(self):
        self.gamestatus=True
        self.snowflag=False
        self.dogflag=0
        self.score=0
        self.scoreup=200
        self.gameover=False
        self.count=0
 
    def dogs_cpdogs(self,dogs,cpdogs):
        boooooooooooooooool=pygame.sprite.groupcollide(dogs,cpdogs,False,True)
        if boooooooooooooooool:
            self.score += self.scoreup
            print(self.score)
 
    def dog_cpdog(self,dog,cpdog2s):
        booooooool=pygame.sprite.spritecollide(dog,cpdog2s,True)
        if booooooool:
            self.snowflag = True
            self.count += 1
            if self.count>=3:
                self.gameover=True

​(3)主函数:


import pygame
import sys,os
import random
from background import GameBackground,Snow
from dog import MySprite
from cpdog import Monster,MySprite2
from pygame.sprite import Group
from collidedetection import Collide
from sound import Sound
from score import Fontf
from crydog import MySpritec
 
 
pygame.init()
screen=pygame.display.set_mode((1280,390))
fpsset=pygame.time.Clock()
bGColor=(255,240,30)
background=GameBackground(screen)
dog=MySprite() 
dog.load("../image/dog.png", 82, 62, 3)
dog.X = 0
dog.Y = 285
dogs = pygame.sprite.Group()
dogs.add(dog)
cpdogs=Group()
lasttimecreat=0
collidetest=Collide()
sound=Sound()
cpdog2s = pygame.sprite.Group()
snowlist = []
for i in range(0, 50):  # 建立50个雪花
    snow=Snow()
    snowlist.append(snow)
scor=Fontf(screen)
onoff = True
crydog=None
 
 
while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        # player ctrl
        if event.type==pygame.KEYDOWN:
            if event.key==pygame.K_RIGHT:
                dog.movieRight=True
            if event.key == pygame.K_LEFT:
                dog.movieLeft=True
            if event.key==pygame.K_SPACE:
                if not dog.jumping:
                    dog.jumping=True
                    dog.vUP = -14
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_RIGHT:
                dog.movieRight=False
            if event.key==pygame.K_LEFT:
                dog.movieLeft=False
        if event.type==pygame.MOUSEBUTTONDOWN:
            mousex,mousey=pygame.mouse.get_pos()
            if mousex>=540 and mousex<=540 + scor.text_width:
                if mousey>=180 and mousey<=180 + scor.text_height:
                    onoff = False
    if dog.jumping:
        if dog.vUP < 0:
            dog.vUP += 0.6
        elif dog.vUP >= 0:
            dog.vUP += 0.8
        dog.Y += dog.vUP
        if dog.Y >= 290:
            dog.jumping = False
            dog.Y = 290
            dog.vUP = 0.0
    if not collidetest.gameover:
 
        if onoff:
            scor.beginpage()
            print(onoff)
 
        else:
            print(onoff)
        #碰撞检测
            collidetest.dogs_cpdogs(dogs,cpdogs)
            collidetest.dog_cpdog(dog,cpdog2s)
            #背景
            background.action()
            background.draw()
            #分数
            # scor.beginpage()
            collidetest.score+=1
            scor.displayScore(collidetest.score)
            #时间控制
            ticks = pygame.time.get_ticks()
            #player绘制
            dogs.update(ticks)
            dogs.draw(screen)
 
            cpdog2s.update(ticks)
            cpdog2s.draw(screen)
            if ticks >lasttimecreat  + random.randint(1000,20000):
                 #生成障碍物
                cp = Monster(screen)
                cpdogs.add(cp)
                cpdog2 = MySprite2()
                cpdog2.load("../image/cpdogs.png", 113, 62, 3)
                cpdog2.X = 1280
                cpdog2.Y = 285
                cpdog2s.add(cpdog2)
                lasttimecreat=ticks
 
            for m in cpdogs:
                m.draw_monster()
                if m.rect.x <=640:
                    del m
            cpdogs.update()
        #snow
            if collidetest.snowflag:
                for snow in snowlist:
                    # 每个雪花位置的变换
                    # if random.randint(0,1):
                    snow.vx = random.randint(-3,3)  # 雪花的横向速度
                    snow.vy = 1                     # 雪花的竖直速度
                    snow.x += snow.vx               # 雪花的横轴移动位置
                    snow.y += snow.vy               # 雪花的纵轴移动位置
                    if snow.y > 500:
                        snow.y = 0
                    pygame.draw.circle(screen,[255,255,255],snow.getsnowpos(),1)
    else:
        if collidetest.snowflag:
            background.action()
            background.draw()
            for snow in snowlist:
                snow.vx = random.randint(-3, 3)
                snow.vy = 1
                snow.x += snow.vx
                snow.y += snow.vy
                if snow.y > 500:
                    snow.y = 0
                pygame.draw.circle(screen, [255, 255, 255], snow.getsnowpos(), 1)
            if not crydog:
                crydog=MySpritec()
                crydog.load("../image/crydog.png", 82, 62,3)
                crydog.X = 100
                crydog.Y = 285
                crydogs=Group()
                crydogs.add(crydog)
            ticks = pygame.time.get_ticks()
            # player绘制
            crydogs.update(ticks)
            crydogs.draw(screen)
            scor.gameoverrrrrrrrr()
            if crydog.X>1280:
                sys.exit()
    fpsset.tick(60)
    pygame.display.update()

效果图:游戏规则躲避情侣狗,一直奔跑加分!

总结

好啦!单身狗大战即将开始,come on。

哈哈哈哈 这游戏蛮有趣的撒!你们的支持是我最大的动力,记得三连哦~木啊!

图片

到此这篇关于Pygame实战练习之保护单身狗游戏的文章就介绍到这了,更多相关Pygame 保护单身狗游戏内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Pygame实战练习之保护单身狗游戏

本文链接: https://lsjlt.com/news/136454.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Pygame实战练习之保护单身狗游戏
    导语 各位戏精大家好!我是木木子,这个中秋已经结束了,你们都带着对象回家了码? 中秋那几天朋友圈简直是大型秀恩爱现场。 又是一年中秋夜,依旧凭实力单身!呼吁大家记得保护下单身狗啊喂!...
    99+
    2024-04-02
  • Pygame实战练习之飞机大战游戏
    导语 承载童年的纸飞机你还会叠嘛? 如果你是个80后或者90后,那你应该记得小时候玩的纸飞机。 叠好后,哈口仙气,飞出去,感觉棒棒哒。 ​ 虽然是一个极其简单的玩具,但那...
    99+
    2024-04-02
  • Pygame实战练习之推箱子游戏
    导语 ​ 要说小时候称霸所有翻盖手机的小游戏,除了贪吃蛇,那就是推箱子了。 ​控制小人将所有箱子放到指定位置,就是这样简简单单的操作,陪伴我度过了无数个没有动...
    99+
    2024-04-02
  • Pygame实战练习之一百层游戏
    导语 哈喽哈喽!大家好!我是木木子,又到了每日游戏更新环节! 8月30日,对暑假还意犹未尽的孩子们收到了一份“开学大礼”: ​ 通知要求,严格限制向未成年人提供网络游戏服...
    99+
    2024-04-02
  • Pygame实战练习之纸牌21点游戏
    导语 ​ 昨天不是周天嘛? 你们在家放松一般都会做什么呢? 周末逛逛街,出去走走看电影......这是你们的周末。 程序员的周末就是在家躺尸唐诗躺尸,偶尔加班加班加班,或...
    99+
    2024-04-02
  • Pygame实战练习之炸弹人学院游戏
    导语 在现在这个浮躁的年代:小编每次登陆王者荣耀,还有每次登陆刺激战场Z! 看着里面的聊天界面,各种代打、各种的找cp。小小编觉得,我们已经失去了玩游戏的初心。 接下来,小台将带领你...
    99+
    2024-04-02
  • 基于Python+Pygame实现变异狗大战游戏
    目录前言一、准备环境 二、代码展示三、效果展示前言 只有你想不到,没有我找不到写不了的好游戏! 哈喽。我是你们的栗子同学啦~ 今天小编去了我朋友家里玩儿,看到了一个敲可爱的...
    99+
    2023-03-03
    Python Pygame变异狗游戏 Python Pygame变异狗 Python Pygame 游戏
  • 基于Python+Pygame如何实现变异狗大战游戏
    这篇文章主要介绍了基于Python+Pygame如何实现变异狗大战游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于Python+Pygame如何实现变异狗大战游戏文章都会有所收获,下面我们一起来看看吧。一...
    99+
    2023-07-05
  • Pygame实战之迷宫游戏的实现
    目录导语正文1)效果展示2)主程序导语 哈喽!哈喽我是栗子,每日更新来啦—— “玩迷宫游戏长大的我们,欣慰地看到,下一代仍热爱着这个经典游戏。 如...
    99+
    2024-04-02
  • Pygame实战之实现扎气球游戏
    目录导语正文一、准备中二、代码演示三、效果展示导语 ​前几天,有人私信小编: 说陪女朋友在小广场上面逛街玩儿扎气球:结果一个都没扎破,扎心了老铁。 女朋友都要离家出走了~让我给想想办...
    99+
    2024-04-02
  • Python Pygame实战之打砖块小游戏
    目录导语一、准备中1)游戏规则:2)环境安装二、开始敲代码1)配置文件2)定义一些类3)定义开始、结束界面4)定义游戏5)主函数与运行界面三、效果展示导语 嘿!前不久刚刚给大家过一款...
    99+
    2024-04-02
  • Python Pygame实战之红心大战游戏的实现
    目录导语一、 红心大战用户手册二、红心大战游戏规则三、准备中四、代码演示五、效果展示导语 还记得那些年,我们玩过的Windows小游戏吗? 说起Windows自带的游戏,相信许多8...
    99+
    2024-04-02
  • Python+Pygame实战之24点游戏的实现
    目录导语游戏介绍实现代码游戏效果展示导语 我第一次玩24点是初中的时候,那时候和堂弟表哥在堂妹家玩,堂妹提出玩24点游戏,堂妹比我们小三岁,可能正在上小学吧。 拿出一副扑克牌去掉大小...
    99+
    2024-04-02
  • Python+Pygame实战之泡泡游戏的实现
    目录导语一、环境安装二、代码展示三、效果展示导语 泡泡王国 欢乐多多 咕噜噜,吹泡泡,七彩泡泡满天飘。大的好像彩气球,小的就像紫葡萄。 ​当泡泡漫天飞舞时,大朋友、小朋友都会情不自禁...
    99+
    2024-04-02
  • Python Pygame实战之欢乐打地鼠游戏
    目录导语​​​一、准备中二、环境安装​三、开始敲代码1)导入模块2)不同的图片设置3)界面头标、标题等。4)音乐设置5)右侧窗口控件不同的按钮设置四、效果展示导语 闲来无事: 铲屎...
    99+
    2024-04-02
  • Pygame实战之经典泡泡龙小游戏
    目录导语​正文一、准备中二、开始敲代码三、效果展示总结导语 Python版的消除类的游戏还是很多的,木木子之前也是推过不少~ 比如:百变的消消乐,还记得嘛?今天就出一个消除类——泡...
    99+
    2024-04-02
  • Python Pygame实战之打砖块游戏的实现
    目录导语开发工具环境搭建效果展示原理简介导语 想起来好久没更这个系列的文章了,周末过来补一波好了。本期我们将利用python制作一个打砖块小游戏,废话不多说,让我们愉快地开始吧~ 开...
    99+
    2024-04-02
  • Python+Pygame实战之吃豆豆游戏的实现
    目录导语​一、首先​二、正式开始三、效果展示导语​ ​昨晚玩起了小时候玩的游戏“吃豆豆”,但是我发现,一局游戏三条命,我根本不能吃完所有的豆豆,总是被敌人吃掉...
    99+
    2024-04-02
  • Pygame实战之实现经典外星人游戏
    目录前言正文安装环境主要代码前言 说说外星人那些事儿.... 你以为的外星人......他们都是乘坐UFO来地球的,长的嗯哼可能比较有特色。也许长这样 害!其实可能也或许不长这样。...
    99+
    2024-04-02
  • Python+Pygame实战之文字剧情游戏的实现
    目录前言一、《巨龙之洞》1)小故事2)环境配置3)代码展示4)效果展示二、《太空矿工》1)小故事2)环境配置3)代码展示4)效果展示前言 哈喽!我是你们的栗子同学—&md...
    99+
    2022-12-08
    Python Pygame文字剧情游戏 Python 文字剧情游戏 Python Pygame 游戏
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作