如何利用python来制作保护单身狗游戏
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,本篇文章为大家展示了如何利用python来制作保护单身狗游戏,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。正文首先准备好图片素材等:bgm音乐必备:impor
千家信息网最后更新 2025年11月16日如何利用python来制作保护单身狗游戏
本篇文章为大家展示了如何利用python来制作保护单身狗游戏,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
正文
首先准备好图片素材等:
bgm音乐必备:
import pygame class Sound(): def __init__(self): pygame.mixer.music.load('../sound/baab.mp3') pygame.mixer.music.play()先上效果图嘿嘿嘿 看好哈:
游戏界面--

程序运行--
(1)设置滚动的背景:
#地图滚动import pygameimport 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 pygameimport sys,osimport randomfrom background import GameBackground,Snowfrom dog import MySpritefrom cpdog import Monster,MySprite2from pygame.sprite import Groupfrom collidedetection import Collidefrom sound import Soundfrom score import Fontffrom 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 = 0dog.Y = 285dogs = pygame.sprite.Group()dogs.add(dog)cpdogs=Group()lasttimecreat=0collidetest=Collide()sound=Sound()cpdog2s = pygame.sprite.Group()snowlist = []for i in range(0, 50): # 建立50个雪花 snow=Snow() snowlist.append(snow)scor=Fontf(screen)onoff = Truecrydog=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。
上述内容就是如何利用python来制作保护单身狗游戏,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
雪花
地图
单身
图片
保护
制作
内容
坐标
情侣
技能
效果
效果图
横坐标
知识
纵坐标
背景
速度
检测
碰撞
相同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全相关事件的内容
远程管理服务器主机
软件开发岗前培训
北京智联招聘软件开发
杭州洲际互联网科技有限公司
服务器安全与优化
工业网络技术有关论文
小枫服务器小游戏
国泰安行业数据库
软件开发项目的环境
数据服务器品牌
双色球参数据库
软件开发人业匹配
暑期安全网络安全
1098数据库原理教材
云南省网络安全建设规划
哪个手机适合炒股软件开发
阳高新时代网络安全欢迎咨询
福安应用软件开发
学网络安全用苹果笔记本可以吗
第一部网络安全法出台时间为
进项是数据库的发票
服务器ip地址改了连接不上
数据库驱动注册方式
手机 服务器出错
王者荣耀的服务器忘记了怎么办
什么是数据库中的组件
云南pdu服务器专用电源生产商
网络安全舆情关注工作
中文编写数据库软件