下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第我在七夕佳節(jié)用Python制作的表白神器,程序員也應該擁有愛情!建議收藏具體而言,首先我們來定義一個按鈕類,其功能是可以根據(jù)初始化參數(shù)生成一個界面上按鈕,且這個按鈕是否可以被點擊到也由傳入的初始化參數(shù)決定,具體而言代碼實現(xiàn)如下:
Function:
InitialArgs:
--x,y:按鈕左上角坐標
--width,height:按鈕寬高
--text:按鈕顯示的文字
--fontpath:字體路徑
--fontsize:字體大小
--fontcolor:字體顏色
--bgcolors:按鈕背景顏色
--is_want_to_be_selected:按鈕是否想被玩家選中
--screensize:軟件屏幕大小
classButton(pygame.sprite.Sprite):
def__init__(self,x,y,width,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_tobe_selected=is_want_to_be_selected
self.screensize=screensize
'''自動根據(jù)各種情況將按鈕綁定到屏幕'''
defdraw(self,screen,mouse_pos):
#鼠標在按鈕范圍內
ifself.rect.collidepoint(mouse_pos):
#--不想被選中
ifnotself.is_want_tobe_selected:
whileself.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-fontsize[0])/2,self.rect.y+(self.rect.height-fontsize[1])/2))
其實就是看看鼠標的當前位置有沒有在按鈕所在的范圍內,如果在且設置的不讓用戶可以點擊到該按鈕,就自動地移動按鈕的位置,使鼠標位置不在移動后的按鈕所在的范圍內。
然后寫個主循環(huán),把界面大小,配色,布局啥的弄的稍微走心一點:
'''主函數(shù)'''
defmain():
#初始化
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
#主循環(huán)
clock=pygame.time.Clock()
whileTrue:
#--背景圖片
screen.fill(cfg.WHITE)
screen.blit(bg_image,(cfg.SCREENSIZE[0]-bg_image.get_height(),0))
#--鼠標事件捕獲
foreventinpygame.event.get():
ifevent.type==pygame.QUIT:
#----沒有點擊好呀按鈕之前不許退出程序
ifis_agree:
pygame.quit()
sys.exit()
elifevent.type==pygame.MOUSEBUTTONDOWNandevent.button:
ifbutton_yes.rect.collidepoint(pygame.mouse.get_pos()):
button_yes.is_selected=True
root=Tk()
root.withdraw()
messagebox.showinfo('','么么噠')
root.destroy()
is_agree=True
#--顯示文字
showText(screen=screen,text='小姐姐,我觀察你很久了',position=(40,50),
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)
#--顯示按鈕
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- CCAA - 2017年12月環(huán)境管理體系基礎答案及解析 - 詳解版(80題)
- CCAA - 2015服務標準化與服務認證答案及解析 - 詳解版(77題)
- 企業(yè)員工培訓與技能發(fā)展路徑目標制度
- 人教版(2026)八年級下冊英語寒假預習講義(含練習題及答案)
- 老年終末期認知障礙非藥物干預策略
- 老年終末期患者跌倒預防的循證護理方案
- T∕SMA 0081-2025 船舶油水計量系統(tǒng)測試方法
- 2025年長沙瀏陽市人民醫(yī)院招聘筆試真題
- 貴金屬回收提純工安全素養(yǎng)測試考核試卷含答案
- 衛(wèi)星通信機務員操作水平競賽考核試卷含答案
- CJ/T 164-2014節(jié)水型生活用水器具
- 購銷合同范本(塘渣)8篇
- 貨車充電協(xié)議書范本
- 屋面光伏設計合同協(xié)議
- 生鮮業(yè)務采購合同協(xié)議
- 夫妻門衛(wèi)合同協(xié)議
- 公司雙選工作方案
- GB/T 4340.2-2025金屬材料維氏硬度試驗第2部分:硬度計的檢驗與校準
- 銷售合同評審管理制度
- 泳池突發(fā)安全事故應急預案
- 村財務管理制度
評論
0/150
提交評論