|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 fffccc8080 于 2023-7-20 08:58 编辑
图片素材及代码在百度盘,这里最多把代码能贴出来
https英文冒号//pan点baidu点com/s/10PUCktCq1S-vDiT8LWWvNQ?pwd=2i4j 提取码: 2i4j
2个py文件, dbc12a.py dbc12f.py
dbc12a.py 这个按鼠标左键擦试水晶球时,只有显示一张的占卜图片,Alpha透明能正常从无到有。
dbc12f.py 这个呢,已经加入了所有图片了,所有图片可以正常的,但就是Alpha透明失效了,找不到原因呢。
以下两个文件的代码都能正常运行的,游戏能正常游戏,就是第二个透明问题失效了。
dbc12a.py 代码如下:
- # 占卜术小游戏(鼠标事件)
- import pygame,sys
- WIDTH=800
- HEIGHT=600
- pygame.init()
- root=pygame.display.set_mode((WIDTH,HEIGHT),0,32)
- clock=pygame.time.Clock()
- bj0=pygame.image.load("./bj0.jpg")
- bj1=pygame.image.load("./bj1.jpg")
- but0=pygame.image.load("./but0.png").convert_alpha()
- but1=pygame.image.load("./but1.png").convert_alpha()
- but=but0
- fh=pygame.image.load("./fh6.png").convert_alpha()
- num=0
- alnum=0
- fh.set_alpha(num)
- kg=0 # 开关
- while True:
- for event in pygame.event.get():
- if event.type==pygame.QUIT:
- pygame.quit()
- sys.exit()
- elif event.type==pygame.MOUSEMOTION: # 鼠标移动
- if 662<=event.pos[0]<=662+102 and 62<=event.pos[1]<=62+35 and kg==0: # 按钮宽、高: 102 35 按钮坐标: 662 62
- but=but1
- elif kg==0:
- but=but0
- elif 175<=event.pos[0]<=175+450 and 63<=event.pos[1]<=63+513 and kg==1: # 第二张水晶球的图片的时候
- #print(event.buttons)
- if event.buttons[0]==1: # buttons[]=(0,0,0) 分别代表左,中,右键,按下即为1,放开为0
- num+=1
- if 200<=num<455:
- alnum+=1
- elif num<200:
- alnum=0
- # elif 200<=num<455: # 这两行好像多此一举
- # alnum=alnum
- elif num>=455:
- alnum=255
- elif event.type==pygame.MOUSEBUTTONUP: # 鼠标放开
- if 662<=event.pos[0]<=662+102 and 62<=event.pos[1]<=62+35 and kg==0 and event.button==1: # 还要判断左键(1)
- kg=1
- if kg==0:
- root.blit(bj0,(0,0))
- root.blit(but,(662,62))
- elif kg==1 and 0<=num<200:
- root.blit(bj1,(0,0))
- elif kg==1 and 200<=num<455: # 200帧往后,alpha由0-255渐变,200+255帧
- fh.set_alpha(alnum)
- root.blit(bj1,(0,0))
- root.blit(fh,(216,104))
- elif kg==1 and num>=455:
- num=455
- fh.set_alpha(alnum)
- root.blit(bj1,(0,0))
- root.blit(fh,(216,104))
- pygame.display.update()
- clock.tick(60)
- #print(num,alnum) # num 帧数 alnum alpha变化值
复制代码
dbc12f.py 代码如下:
- # 占卜术小游戏(鼠标事件)
- import pygame,sys
- WIDTH=800
- HEIGHT=600
- pygame.init()
- root=pygame.display.set_mode((WIDTH,HEIGHT),0,32)
- clock=pygame.time.Clock()
- bj0=pygame.image.load("./bj0.jpg")
- bj1=pygame.image.load("./bj1.jpg")
- but0=pygame.image.load("./but0.png").convert_alpha()
- but1=pygame.image.load("./but1.png").convert_alpha()
- font=pygame.font.Font("ziti.ttf",15)
- font_color=(192,192,192)
- but=but0
- # fh=pygame.image.load("./fh6.png").convert_alpha()
- kg=0 # 开关
- fhs = []
- index = 0
- num=0
- alnum=0
- for index in range(9):
- path="./fh"+str(index)+".png"
- fh = pygame.image.load(path).convert_alpha()
- fh.set_alpha(num)
- fhs.append(fh)
- index+=1
- # print(len(fhs))
- # fh.set_alpha(num)
- # fhs_i=0
- # for fhs_i in range(len(fhs)):
- # fhs[fhs_i].set_alpha(num)
- # fhs_i+=1
- def inputNum():
- while True:
- n = input("请输入一个两位数:\n")
- if len(n)==2 and n.isdigit(): # 判断两位数长度,判断是不是数字
- return n
- break
- else:
- print("您的输入有误需要重新输入!:\n")
- inpNum=int(inputNum())
- #print(type(inpNum)) # str
- # iNum - (iNum//10 + iNum%10) 的结果,弄个变量result初始化为0
- result=0
- def rel_Num(iNum):
- result=iNum-(iNum//10+iNum%10)
- return result
- result=rel_Num(inpNum) # 从10到99算出来其实都是9的倍数
- relNum=int(result/9)
- path="./fh"+str(relNum)+".png"
- text="您输入的2位数是:" + str(inpNum) +" ! " + str(inpNum) + "-(" + str(inpNum//10) + "+" + str(inpNum%10) + ")=" + str(result) + " 都是9的倍数!因此您的幸运数字是 " + str(relNum) + ",对应的幸运图案在下面水晶球里!"
- text_surf=font.render(text,False,font_color)
- text_rect=text_surf.get_rect(center=(400,20))
- while True:
- for event in pygame.event.get():
- if event.type==pygame.QUIT:
- pygame.quit()
- sys.exit()
- elif event.type==pygame.MOUSEMOTION: # 鼠标移动
- if 662<=event.pos[0]<=662+102 and 62<=event.pos[1]<=62+35 and kg==0: # 按钮宽、高: 102 35 按钮坐标: 662 62
- but=but1
- elif kg==0:
- but=but0
- elif 175<=event.pos[0]<=175+450 and 63<=event.pos[1]<=63+513 and kg==1: # 第二张水晶球的图片的时候
- #print(event.buttons)
- if event.buttons[0]==1: # buttons[]=(0,0,0) 分别代表左,中,右键,按下即为1,放开为0
- num+=1
- if 200<=num<455:
- alnum+=1
- elif num<200:
- alnum=0
- # elif 200<=num<455: # 这两行好像多此一举
- # alnum=alnum
- elif num>=455:
- alnum=255
- elif event.type==pygame.MOUSEBUTTONUP: # 鼠标放开
- if 662<=event.pos[0]<=662+102 and 62<=event.pos[1]<=62+35 and kg==0 and event.button==1: # 还要判断左键(1)
- kg=1
- if kg==0:
- root.blit(bj0,(0,0))
- root.blit(but,(662,62))
- elif kg==1 and 0<=num<200:
- root.blit(bj1,(0,0))
- root.blit(text_surf,text_rect)
- elif kg==1 and 200<=num<455: # 200帧往后,alpha由0-255渐变,200+255帧
- fhs[relNum].set_alpha(num)
- root.blit(bj1,(0,0))
- root.blit(text_surf,text_rect)
- root.blit(fhs[relNum],(216,104))
- elif kg==1 and num>=455:
- num=455
- fhs[relNum].set_alpha(num)
- root.blit(bj1,(0,0))
- root.blit(text_surf,text_rect)
- root.blit(fhs[relNum],(216,104))
- pygame.display.update()
- clock.tick(60)
- print(relNum,num,alnum) # num 帧数 alnum alpha变化值
复制代码
|
评分
-
查看全部评分
|