我是一个Py小白,最近在做一个编程每次加载到角色图片就会卡崩,求大神解答

from bubble import *
bubble_size(5,120)
set_bgm("Nick Nitro - Bad Time Trio [Undertale AU] - Triple The Threat NITRO Remix.mp3")
player_pic("robot1.png")
size = 50
player_size(size)while True:eat = eat_what()if eat == "small":voice_tip("eat.mp3") size = size + 10player_size(size)if eat == "big":voice_tip("fail.mp3")game_fail()breakif size >= 250:print("是否开启无尽模式")choice = input("请输入(Y/N)")if choice == "Y":print("Ready?")print("GO!")breakif eat == "white":voice_tip("eat.mp3") all_clear() #清屏if eat == "red":voice_tip("snd_mushroomdance.ogg") size = size + 50player_size(size)play()
while choice == "Y":eat = eat_what()if eat == "small":voice_tip("eat.mp3") #设置提示音#(1)让机器人吃到小泡泡后大小增加10size = size + 10player_size(size)if eat == "big":voice_tip("fail.mp3")game_fail()breakbreakif eat == "red":voice_tip("snd_mushroomdance.ogg") size = size + 50player_size(size)if eat == "white":voice_tip("eat.mp3")all_clear() #清屏play()

所需要调用的库源(文件名buuble.py)

import pygame, sys, time, xes-lib
from random import *pygame.init()
screen = pygame.display.set_mode((700, 700))
pygame.display.set_caption("泡泡大作战 ")bgimg = "bg.png"
#bgm = "bgm1.wav"
hspeed = 10
hscale = 44
grow = 5  ef = 15  sf = 150
add_time = 10
add_scale = 20  bubble_min = 5
bubble_max = 120sp = 20  score = 0
win = False
# timeTotal = 0
# time_flag = 1 #检测是否还有时间
# t1 = time.time()
tick = 0  # 控制敌人出现的频率
clock = pygame.time.Clock()def load():global screen,img_enemis,img_bomb,img_mushroom,bg,winImg,failImg,myfont,\enemies,bombs,addtimes,mushroomsfileList = ["bubble1.png", "bubble2.png", "bubble3.png"]img_enemis = []for img in fileList:img_enemis.append(pygame.image.load(img))img_bomb = pygame.image.load("white.png")img_mushroom = pygame.image.load("red.png")bg = pygame.image.load(bgimg)winImg = pygame.image.load("win.png")failImg = pygame.image.load("fail.png")# pygame.mixer.music.load(bgm)# pygame.mixer.music.set_volume(0.5)# pygame.mixer.music.play(-1)# sound_eat = pygame.mixer.Sound("eat.wav")#sound_eat = xeslib.playbgMusic("eat.wav")myfont = pygame.font.SysFont("kaiti", 45)#img_hero = pygame.image.load(h)enemies = Group()bombs = Group()addtimes = Group()mushrooms = Group()class Hero:def __init__(self, screen, h, hspeed, hscale, grow):self.image0 = h# self.scaleNum = randint(30,50) # 图片缩放后的尺寸self.scaleNum = hscaleself.energy = self.scaleNumself.image = pygame.transform.scale(self.image0, (self.scaleNum, self.scaleNum))self.screen = screenself.screenRect = self.screen.get_rect()self.rect = self.image.get_rect()self.rect.center = self.screenRect.centerself.moveright = Falseself.moveleft = Falseself.moveup = Falseself.movedown = Falseself.speed = hspeedself.myfont = pygame.font.SysFont(None, int(30 * self.scaleNum / 100))self.grow = grow  # 长大速度def blit(self):self.image = pygame.transform.scale(self.image0, (self.scaleNum, self.scaleNum))self.screen.blit(self.image, self.rect)self.myfont = pygame.font.SysFont(None, int(30 * self.scaleNum / 100))self.energyShow = self.myfont.render(str(self.energy), True, (255, 255, 255))self.screen.blit(self.energyShow, (self.rect.x + self.rect.width / 2, self.rect.y))def update(self):if self.moveleft:self.rect.x -= self.speedif self.rect.x < 0:self.rect.x = 0elif self.moveright:self.rect.x += self.speedif self.rect.x > 700 - self.rect.width:self.rect.x = 700 - self.rect.widthelif self.moveup:self.rect.y -= self.speedif self.rect.y < 0:self.rect.y = 0elif self.movedown:self.rect.y += self.speedif self.rect.y > 700 - self.rect.height:self.rect.y = 700 - self.rect.heightclass Bomb():  # Sprite):def __init__(self, screen, heroObj, image):# super().__init__()self.image = imageself.image = pygame.transform.scale(self.image, (60, 60))self.screen = screenself.rect = self.image.get_rect()self.rect.center = (randint(0, 700), randint(0, 700))if self.rect.colliderect(heroObj.rect):self.rect.center = (randint(0, 700), randint(0, 700))self.speed_x = randint(-1, 1)self.speed_y = randint(-1, 1)self.myfont = pygame.font.SysFont(None, 30)self.hasOne = Falsedef blit(self):self.screen.blit(self.image, self.rect)def colliderect(self, rect):return self.rect.colliderect(rect)def update(self):self.rect.move_ip(self.speed_x, self.speed_y)if self.rect.x < 0 or self.rect.y > 700:self.speed_x = - self.speed_xelif self.rect.y < 0 or self.rect.y > 700:self.speed_y = - self.speed_yself.energyShow = self.myfont.render("WHITE", True, (255, 255, 255))self.screen.blit(self.energyShow, (self.rect.x + self.rect.width / 2, self.rect.y))class Enemy():def __init__(self, screen, heroObj, espeedx, espeedy, escale, image):self.image = imageself.screen = screen# self.scaleNum = randint(10,int(heroObj.scaleNum*1.5)) # 图片缩放后的尺寸self.scaleNum = escale  # randint(5,escale)self.energy = self.scaleNumself.image = pygame.transform.scale(self.image, (self.scaleNum, self.scaleNum))self.rect = self.image.get_rect()self.rect.center = (randint(0, 700), randint(0, 700))if self.rect.colliderect(heroObj.rect):self.rect.center = (randint(0, 700), randint(0, 700))# self.speed_x = randint(-1,1)# self.speed_y = randint(-1,1)self.speed_x = espeedxself.speed_y = espeedyself.myfont = pygame.font.SysFont(None, int(30 * self.scaleNum / 100))def blit(self):self.screen.blit(self.image, self.rect)def colliderect(self, rect):return self.rect.colliderect(rect)def update(self):self.rect.move_ip(self.speed_x, self.speed_y)if self.rect.x < 0 or self.rect.y > 700:self.speed_x = - self.speed_xelif self.rect.y < 0 or self.rect.y > 700:self.speed_y = - self.speed_yself.energyShow = self.myfont.render(str(self.energy), True, (255, 255, 255))self.screen.blit(self.energyShow, (self.rect.x + self.rect.width / 2, self.rect.y))class Mushroom():  # Sprite):def __init__(self, screen, heroObj, image):# super().__init__()self.image = imageself.image = pygame.transform.scale(self.image, (60, 60))self.screen = screenself.rect = self.image.get_rect()self.rect.center = (randint(0, 700), randint(0, 700))if self.rect.colliderect(heroObj.rect):self.rect.center = (randint(0, 700), randint(0, 700))self.speed_x = randint(-1, 1)self.speed_y = randint(-1, 1)self.myfont = pygame.font.SysFont(None, 30)self.hasOne = Falsedef blit(self):self.screen.blit(self.image, self.rect)def colliderect(self, rect):return self.rect.colliderect(rect)def update(self):self.rect.move_ip(self.speed_x, self.speed_y)if self.rect.x < 0 or self.rect.y > 700:self.speed_x = - self.speed_xelif self.rect.y < 0 or self.rect.y > 700:self.speed_y = - self.speed_yself.energyShow = self.myfont.render("RED", True, (255, 255, 255))self.screen.blit(self.energyShow, (self.rect.x + self.rect.width / 2, self.rect.y))class AddTime():  # Sprite):def __init__(self, screen, heroObj, image):# super().__init__()self.image = imageself.image = pygame.transform.scale(self.image, (60, 60))self.screen = screenself.rect = self.image.get_rect()self.rect.center = (randint(0, 700), randint(0, 700))if self.rect.colliderect(heroObj.rect):self.rect.center = (randint(0, 700), randint(0, 700))self.speed_x = randint(-1, 1)self.speed_y = randint(-1, 1)self.myfont = pygame.font.SysFont(None, 30)self.hasOne = Falsedef blit(self):self.screen.blit(self.image, self.rect)def colliderect(self, rect):return self.rect.colliderect(rect)def update(self):self.rect.move_ip(self.speed_x, self.speed_y)if self.rect.x < 0 or self.rect.y > 700:self.speed_x = - self.speed_xelif self.rect.y < 0 or self.rect.y > 700:self.speed_y = - self.speed_yself.energyShow = self.myfont.render("Add Time", True, (255, 255, 255))self.screen.blit(self.energyShow, (self.rect.x + self.rect.width / 2, self.rect.y))class Group():def __init__(self):self._list = []def add(self, item):item.isremove = 0self._list.append(item)def draw(self):for item in self._list:item.blit()# passdef update(self):for item in self._list:item.update()# passdef collide(self, target, is_remove):result = []for item in self._list:if item.colliderect(target.rect):item.isremove = 1result.append(item)ll = len(self._list)if is_remove:for i in range(ll - 1, -1, -1):if self._list[i].isremove == 1:self._list.pop(i)return resultclass Button():def __init__(self, x1,x2,y1,y2):self.right = x2self.left = x1self.bottom = y2self.top = y1def has(self, pos):if self.right >= pos[0] >= self.left and self.bottom >= pos[1] >= self.top:return Trueelse:return Falseleft_button = Button(0,233,233,466)
right_button = Button(466,700,233,466)
up_button = Button(233,466,0,233)
down_button = Button(233,466,466,700)def eventhandler(heroObject):global mouse_flag# sound_move = pygame.mixer.Sound("move1.wav")for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()elif event.type == pygame.KEYDOWN:# sound_move.play()if event.key == pygame.K_RIGHT:heroObject.moveright = Trueelif event.key == pygame.K_LEFT:heroObject.moveleft = Trueelif event.key == pygame.K_UP:heroObject.moveup = Trueelif event.key == pygame.K_DOWN:heroObject.movedown = Trueelif event.type == pygame.KEYUP:if event.key == pygame.K_RIGHT:heroObject.moveright = Falseelif event.key == pygame.K_LEFT:heroObject.moveleft = Falseelif event.key == pygame.K_UP:heroObject.moveup = Falseelif event.key == pygame.K_DOWN:heroObject.movedown = Falseelif event.type == pygame.MOUSEBUTTONDOWN: #兼容触屏pos = pygame.mouse.get_pos()if left_button.has(pos):heroObject.moveleft = TrueheroObject.moveright, heroObject.moveup, heroObject.movedown = False, False, Falseif right_button.has(pos):heroObject.moveright = TrueheroObject.moveleft,heroObject.moveup,heroObject.movedown = False,False,Falseif up_button.has(pos):heroObject.moveup = TrueheroObject.moveright, heroObject.moveleft, heroObject.movedown = False, False, Falseif down_button.has(pos):heroObject.movedown = TrueheroObject.moveright, heroObject.moveleft, heroObject.moveup = False, False, Falseelif event.type == pygame.MOUSEBUTTONUP:pos = pygame.mouse.get_pos()if left_button.has(pos):heroObject.moveleft = Falseif right_button.has(pos):heroObject.moveright = Falseif up_button.has(pos):heroObject.moveup = Falseif down_button.has(pos):heroObject.movedown = False   def player_size(r):global hscale,herohscale = rhero.scaleNum = rhero.energy = rhero.rect.width = hero.scaleNumhero.rect.height = hero.scaleNumdef random_speed():speedx = randint(-1, 1)  # 横向移动速度speedy = randint(-1, 1)  # 纵横向移动速度return speedx, speedydef random_scale():# 控制敌人的大小global bubble_min,bubble_maxscale = randint(bubble_min, bubble_max)return scaledef bubble_size(min, max):global bubble_min,bubble_maxif max >= min:if min < 5:bubble_min = 5else:bubble_min = minbubble_max = maxelse:print("诶嘿")def play(speed_fuc = random_speed , escale = random_scale ):global tick,hero,enemies,bombs,addtimes,mushrooms,timeTotal,score,win,add_time,add_scale,result,time_flag,\audio,img_hero,myfontclock.tick(30)eventhandler(hero)screen.blit(bg, (0, 0))tick += 1if tick % ef == 0:enemy = Enemy(screen, hero, speed_fuc()[0], speed_fuc()[1], escale(), choice(img_enemis))enemies.add(enemy)if tick % sf == 0:s = randint(1, 2)if s == 1:bomb = Bomb(screen, hero, img_bomb)bombs.add(bomb)elif s == 2:mushroom = Mushroom(screen, hero, img_mushroom)mushrooms.add(mushroom)hero.blit()enemies.draw()hero.update()enemies.update()#主角大小hero_size_text = "大小:" + str(hero.scaleNum)hero_size_show = myfont.render(hero_size_text, True, (255, 255, 255))screen.blit(hero_size_show, (10, 10))bombs.draw()bombs.update()mushrooms.draw()mushrooms.update()# t2 = time.time()# timeLast = int(timeTotal - (t2 - t1))# timelastTxt = "时间:" + str(timeLast)# timeLastShow = myfont.render(timelastTxt, True, (255, 255, 255))# screen.blit(timeLastShow, (500, 10))# if timeLast <= 0:#     time_flag = 0#     audio.stop()pygame.display.update()# if time_flag == 0:#     game_fail()def eat_what():global hero,enemies,score,bombs,mushroomscollectEnemyList = enemies.collide(hero, True)if collectEnemyList != []:if hero.energy >= collectEnemyList[0].energy:return "small"else:return "big"if bombs.collide(hero, True):return "white"if mushrooms.collide(hero, True):return  "red"def all_clear():global enemiesenemies = Group()def set_bgm(m):global audioaudio = xeslib.playbgMusic(m)audio.play()def voice_tip(s):global sound_eatsound_eat = xeslib.playbgMusic(s)sound_eat.play(5000)def player_pic(h):global heroimg_hero = pygame.image.load(h)img_hero  = pygame.transform.scale(img_hero, (200,200))hero = Hero(screen, img_hero, hspeed, hscale, grow)def gameover(img):while True:clock.tick(5)for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()returnscreen.blit(img, (0, 0))pygame.display.update()returndef game_fail():global failImggameover(failImg)time.sleep(1)def game_win():global winImggameover(winImg)time.sleep(1)load()

P.S.音乐和图片各位大神可以自行搭配,格式需要在源文件(.py)中更改一下(源文件仅支持.MP3格式)可改.ogg,.flac等

萌新小白,求大神解答相关推荐

  1. [LeetCode]LRU Cache有个问题,求大神解答【已解决】

    题目: Design and implement a data structure for Least Recently Used (LRU) cache. It should support the ...

  2. 软件开发Linux环境下,java通过JNA调用so报错,求大神解答,感激不尽。

    软件开发Linux环境下,java通过JNA调用so报错,求大神解答,感激不尽. 图片说明 最佳答案: 专家已采纳 先用c等调用一下so,看函数能否正确调用 文章来源:https://ask.csdn ...

  3. matlab 连续两个if,求大神解答一个matlab中的for循环嵌套if选择语句

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:求大神解答一个matlab中的for循环嵌套if选择语句回答:1.最后缺少一个end;2.这句输出没什么意义:disp A(i)=A ...

  4. 一个限流电路,求大神解答

    目前在做一个项目,是一个产品里面需要用一个螺线管来带动带动一个机械结构上锁或者解锁.螺线管直接接上12VDC的话会发热严重,所以决定设计一个电路进行降压限流,电路如下: 1. 12VDC输出时,流经螺 ...

  5. java 网格包,求大神解答:JAVA网格包布局管理器小程序问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 为什么我在这个程序上加入了一个Container对象就出问题了,求解答,要如何改: package A; import java.awt.*; impor ...

  6. 计算机丢失first,求大神解答硬盘驱动丢失怎么办

    某蛋的piglet桑 回答数:14533  |  被采纳数:5 2016-12-23 12:51:05 一.U盘重装系统 准备:一台正常开机的电脑和一个U盘 1.百度下载"U大师" ...

  7. 求大神解答!!!!在线死等!

    诉求:python能否实现在一个网站平台上输入账号密码后,能否开启多个同一账号下的标签页. 例如:如下图所示输入账号密码,打开网站后可以开启多个标签页,并且可以分别对每个标签页进行相同操作.

  8. 计算机游戏模式怎么开144hz,刚开始换成了144hz现在为何最高只有60hz了求大神解答...

    电脑能够设置什么样的屏幕刷新率和分辨率不仅取决于显示器及其驱动程序,同时还取决于显卡及其驱动程序.也就是说,只有当显示器和显卡都支持某一种刷新率和分辨率模式时,操作系统才能设置出这种屏幕的刷新率和分辨 ...

  9. w讠ndows Boot Manager,求大神解答:急急电脑开机出现windows boot manager无法开机怎么办,...

    曲终人未散灬灬 回答数:196  |  被采纳数:54 win10:1.如果是磁盘损坏,就只能更换:如果是系统启动文件损坏,在PE下修复或是重装系统:这里主要讲的是磁盘主引导记录损坏.如果是主引导损坏 ...

  10. 我是用的是NetBeans8.0急需一个jsp上传图片到网站并保存路径到数据库的实例。求大神解答,给点赞!

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

最新文章

  1. python创建文件夹_Python学习第71课-本地建立repository仓库
  2. ecg 幅度_ECG信号中一些运动伪差的讨论
  3. python websocket server_用Python实现一个简单的WebSocket服务器
  4. 论“性能需求分析”系列专题(一)之 性能需求剖析
  5. 10个在线Web设计开发工具介绍
  6. java操作redis的操作_Java操作redis简单示例
  7. Echarts双纵轴分隔线合并解决方案
  8. Python练习:天天向上的力量III
  9. urllib 库的代替品 requests 的用法
  10. matplotlib条形图
  11. PID算法 旋转倒立摆与平衡车的区别。此贴后边会更新。
  12. win7右键显示隐藏文件及扩展名
  13. LeetCode算法之蓄水池算法
  14. 阿里巴巴实习一年之后的感悟
  15. 【推荐工具】connected papers:文献知识图谱神器
  16. 好用且必备——思维导图软件
  17. 创建并配置一个伪分布式Hadoop3.x版本集群(三)
  18. 个人用户拨号上网除了具备计算机,计算机和网络基的础知识总复习资料第一部分网络.doc...
  19. HashMap的大小为什么必须是2的倍数
  20. 【java 微信公众号开发】 微信端获取code和opendId,access_token 步骤调试

热门文章

  1. 多年珍藏的Android开发必备网站和工具
  2. PLC PID调试总结
  3. python微信支付_微信支付 python版
  4. 辐射能量、辐照度、辐射亮度
  5. linux 中压缩文件夹命令行,Linux下压缩文件夹命令使用
  6. 对接携程供应商php加密解密类
  7. oracle 富文本类型,将BLOB类型值在富文本显示和将富文本内容以BLOB类型存储到数据库...
  8. 测试摇一摇次数的软件,iOS通过加速计计算摇一摇次数
  9. ubuntu移动硬盘打不开
  10. 【Love2d从青铜到王者】第九篇:Love2d之库(library)