表白神器.py

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

import sys
import cfg
import random
import pygame
from tkinter import TK,messagebox


'''
Function:
按钮类
Initial Args:
--x,y:按钮左上角坐标
--width,height:按钮宽高
--text:按钮显示的文字
--fontpath:字体路径
--fontsize:字体大小
--fontcolor:字体颜色
--bgcolors:按钮背景颜色
--is_want_to_be_selected:按钮是否想被玩家选中
--screensize:软件屏幕大小
'''
class Button(pygame.sprite.Sprite):
def_init_(self,x,y,width,height)
--fontcolor:字体颜色
--bgcolors:按钮背景颜色
--is_want_to_be_selected:按钮是否想被玩家选中
--screensize:软件屏幕大小
'''
class Button(pygame.sprite.Sprite):
def_init_(self,x,y,wifth,height,text,fontpath,fontsize,fontcolor,bgcolors,edgecolor,edgesize=1,is_want_to_be_selected=True,screensize=None,**kwargs):

pygame.sprite.Sprite,_init_(self)
self.rect=
pygame.Rect(x,y,width,height)
self.text=text
self.font=
pygame.font.Font(fontpath,fontsize)
self.fontcolor=
fontcolor
self.bgcolors=
bgcolors
self.edgecolor=
edgecolor
self.edgesize=
edgesize

self.is_want_to_be_selected=
is_want_to_be_selected
self.screensize=
screensize
'''自动根据各种情况将按钮绑定到屏幕'''
def draw(self,screen,mouse_pos):
#鼠标在按钮范围内
if self.rect.collidepoint(mouse_pos):
#--不想被选中
if not
self.is_want_tobe_selected:

while self.rect.collidepoint(mouse_pos):

self.rect.left,self.rect.top=random.randint(0,self.screensize[0]-self.rect.width),
random.randint(0,self.screensize[1]-self.rect.height)

pygame.draw.rect(screen,self.bgcolors[0],self.rect,0)

pygame.draw.rect(screen,self.edgecolor,self.rect,self.edgesize)
#鼠标不在按钮范围内
else:

pygame.draw.rect(screen,self.bgcolors[1],self.rect,0)
pygame.draw.rect(screen,self.edgecolor,self.rect,self.edgesize)
text_render=
self.font.render(self.text,True,self.fontcolor)
fontsize=self.font.size
(self.text)
screen.blit(text_render,
(self.rect.x+(self.rect.width-fontize[0]/2,
self.rect.y+(self.height-fontsize[1]/2))
'''在指定位置显示文字'''
def showText((screen,text,position,fontpath,fontsize,fontcolor,is_bold=False):
font=pygame.font.Font
(fontpath,fontsize)
font.set_bold(is_bold)
text_render=font.render(text,True,fontcolor)
screen.blit(text_render,position)
'''主函数'''
def main():
#初始化
pygame.init()
screen =
pygame.display.set_mode(cfg.SCREENSIZE,0,32)
pygame.display.set_icon
(pygame.image.load
(cfg.ICON_IMAGE_PATH))
pygame.display.set_caption('来自一位喜欢你的憨憨')
#背景音


pygame.mixer.music.load
(cfg.BGM_PATH)
pygame.mixer.music.play(-1,30.0)
#biu爱心那个背景图片
bg_image=pygame.image.load(cfg.BG_IMAGE_PATH)
bg_image=
pygame.transform.smoothscale(bg_image,(150,150))
#实例化两个按钮
button_yes=Button(x=20,y=cfg.SCREENSIZE[1]-70,width=120,height=35,

text=‘好呀',
fontpath=cfg.FONT_PATH,fontsize=15,fontcolor=cfg.BLACK,edgecolor=cfg.SKYBLUE,

edgesize=2,bgcolors=
[cfg.DARKGRAY,cfg.GAINSBORO],
is_want_to_be_selected=True,
screensize=cfg.SCREENSIZE)
button_no=Button
(x=cfg.SCREENSIZE[0]-140,
y=cfg.SCREENSIZE[1]-70,width=120,
height=35,

text='算了吧',fontpath=cfg.FONT_PATH,
fontsize=15,fontcolor=cfg:BLACK,
edgecolor=cfg.DARKGRAY,


edgesize=1,bgcolors=[cfg.DARKGRAY,
cfg.GAINSBORO],
is_want_to_be_selected=False,
screensize=cfg.SCREENSIZE)
#是否点击了好呀按钮
is_agree=False
# 主循环
clock=pygame.time.Clock()
while True:
#--背景图片
screen.fill(cfg.WHITE)
screen.blit(bg_image,
(cfg.SCREENSIZE[0]-bg_image.get_height(),
0))
#--鼠标事件捕获
for event in
pygame.event.get():
if event.type
==pygame.QUIT:
#
---没有点击好呀按钮之前不许退出程序
if
is_agree:

pygame.quit()

sys.exit(0
elif
event.type==
pygame.MOUSEBUTTONDOWN and
event.button:
if
button_yes.rect.collidepoint
(pygame.mouse.get_pos()):
button_yes.is_selected=True

root=TK()

root.widthdraw()

messagebox.showinfo(“,'???么么哒???')

root.destory()

is_agree=True
#--显示文字
showText
(screen=screen,text='小姐姐,我认识你不短了',position=(40,60),

fontpath=cfg.FONT_PATH,fontsize=25,fontcolor=cfg.BLACK,is_bold=False)
showText
(screen=screen,text='我们的兴趣爱好相同,做我女朋友好不好?',position=(40,100),

fontpath=cfg.FONT_PATH,fontsize=25,fontcolor=cfg.BLACK,is_bold=True)
#--显示按钮
button_yes.draw
(screen,pygame.mouse.get_pos())

button_no.draw(screen,pygame.mouse.get_pos())
#--刷新

pygame.display.update()
clock.tick(60)

'''run'''
if_name_=='_main_':
main()
()


相关文档
最新文档