教你用 Python 實現抖音熱門表白軟體
阿新 • • 發佈:2018-11-12
之前在群裡看到有人發了一個抖音上很火的小視訊,就是一個不正經的軟體,執行後問你是不是願意做我的朋友,但你沒法點選到「不同意」!並且沒辦法直接關閉視窗!
很不正經,很流氓,有點適合我。
效果大概是這樣的:
我要做一個高仿版的!
實現思路
首先我想到的就是 pygame 實現,因為之前很多人都用它「打過飛機」,不對,是做「打飛機」的遊戲,因此多少有些熟悉。
其實思路很簡單,就是探測滑鼠位置,當滑鼠跑到按鈕上面時,隨機改變按鈕的位置。
剩下的就是元件的佈局樣式了!
這裡我在網上找了一個小圖片,放在左方,然後中間位置放置兩行文字,下方放置兩個按鈕,最終佈局如下:
主要實現邏輯
實現流程大致如下:
主要的邏輯就是滑鼠移動到按鈕上時,按鈕的位置進行隨機的變動。
如何判斷滑鼠在按鈕上?看下出自靈魂畫手的示意圖:
程式碼實現也很簡單:
# 生成隨機的位置座標
def get_random_pos():
x, y = random.randint(20, WIDTH-20), random.randint(20, HEIGHT-20)
return x, y
# 獲取滑鼠位置
# 若滑鼠位置位於按鈕區域內
# 則隨機生成按鈕位置進行顯示
mouse_pos = pygame.mouse.get_pos()
if mouse_pos[0] < unlike_pos_x+unlike_pos_width and mouse_pos[0] > unlike_pos_x and\
mouse_pos[1] < unlike_pos_y+unlike_pos_height and mouse_pos[1] > unlike_pos_y:
while True:
unlike_pos_x, unlike_pos_y = get_random_pos()
if mouse_pos[0] < unlike_pos_x+unlike_pos_width and mouse_pos[0] > unlike_pos_x and\
mouse_pos[1] < unlike_pos_y+unlike_pos_height and mouse_pos[1] > unlike_pos_y:
continue
break
看著有點亂,但其實就是上圖的公式。
實現效果
最終實現效果:
最後,把我們的程式打包成 exe,當然,需要附上圖片和字型檔案。
不會程式碼打包的可以參考之前的文章:
1、 使用 PyInstaller 打包 Python 程式
2、 使用 py2exe 打包 Python 程式
程式和最終的 exe 檔案,關注下方公眾號,回覆【表白】即可獲取。
另外,據說 tkinter
也能實現,改天研究下~
最近蒐集到傳智播客 2018 最新 Python 和 Java 教程!關注本公眾號,後臺回覆「2018」即可獲取下載地址。
公眾號提供CSDN資源免費下載服務!