|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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变化值
|
评分
-
查看全部评分
|