我在七夕佳節(jié)用Python制作的表白神器,程序員也應該擁有愛情!建議收藏_第1頁
我在七夕佳節(jié)用Python制作的表白神器,程序員也應該擁有愛情!建議收藏_第2頁
我在七夕佳節(jié)用Python制作的表白神器,程序員也應該擁有愛情!建議收藏_第3頁
我在七夕佳節(jié)用Python制作的表白神器,程序員也應該擁有愛情!建議收藏_第4頁
我在七夕佳節(jié)用Python制作的表白神器,程序員也應該擁有愛情!建議收藏_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第我在七夕佳節(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論