用Python畫小人發射愛心,還有彈窗設計哦!

專注的阿熊發表於2021-09-23

##Author Griffy

##Date 2021-9-21

from turtle import *

import time

import PySimpleGUI as sg     # 彈框製作模組

def draw_count_down(i):        # 倒數

     bgcolor('black')

     speed(0)

     up()

     goto(-50,-100)

     color('white')

     write(i,,font=('Times New Roman', 200, 'bold'))

     time.sleep(1)

def draw_moon():                 # 畫月亮

     bgcolor('#093FB7')

     color('#F4EE00', '#F4EE00')

     begin_fill()

     speed(2)

     up()

     goto(0, -300)

     down()

     circle(300)

     end_fill()

def draw_people():    # 畫小人

     up()

     fillcolor()

     begin_fill()

     color('black','white')

     goto(-300, 50)  # 脖子座標

     down()

     circle(75)  # 半徑為 75 的腦袋

     end_fill()

     right(90)

     forward(175)  # 身體的長度 175 畫素

     right(45)

     forward(100)  # 腿長 100 畫素

     up()

     goto(-300, -120)  # 畫另一條腿

     down()

     left(90)

     forward(100)

     up()

     goto(-300, -5)  # 手臂座標

     down()

     left(45)

     forward(100)  # 第一隻手臂長度

     left(45)

     forward(67)  # 手掌長度

     up()

     goto(-300, -40)  # 第二隻手臂座標

     down()

     right(45)

     forward(100)  # 第二隻手臂長度

     right(45)

     forward(67)

     up()

     goto(-330, 155)  # 第一隻眼睛起始座標

     down()

     right(45)

     forward(50)  # 眼睛長度為 50

     up()

     goto(-270, 155)  # 第二隻眼睛起始座標

     down()

     forward(50)

     up()

     pencolor('#F39F79')

     goto(-340,100) # 紅臉蛋第一隻眼

     seth(0)

     down()

     backward(40)

     up()

     goto(-260, 100)  # 紅臉蛋第二隻眼

     down()

     forward(40)

     time.sleep(1)

def draw_heart(size):            # 畫愛心

     color('red', 'pink')

     down()

     setheading(150)

     begin_fill()

     forward(size)

     circle(size * -3.745, 45)

     circle(size * -1.431, 165)

     left(120)

     circle(size * -1.431, 165)

     circle(size * -3.745, 45)

     forward(size)

     end_fill()

def send_heart():                  # 發射愛心

     up()

     goto(-50, -22)

     draw_heart(14)

     up()

     goto(120, -22)

     draw_heart(25)

     penup()

     goto(305, -22)

     draw_heart(43)

def wr_character():

     up()

     goto(-50,-200)

     pencolor('black')

     write(' ', font=(' 幼圓 ', 60, 'bold'))

     up()

     goto(50,-200)

     write(' ', font=(' 幼圓 ', 60, 'bold'))

     up()

     goto(150,-200)

     write(' ', font=(' 幼圓 ', 60, 'bold'))

     up()

     goto(250,-200)

     write(' ', font=(' 幼圓 ', 60, 'bold'))

def draw_pupu():       # 畫便便

     up()

     shapesize(10, 2)

     speed(2)

     fillcolor()

     color('#805140','#805140')

     begin_fill()

     goto(-50, -20)

     down()

     circle(20)

     end_fill()

     begin_fill()

     up()

     goto(-50, -80)

     down()

     circle(40)

     end_fill()

     begin_fill()

     up()

     goto(10, -110)

     seth(90)

     down()

     circle(60,180)

     seth(0)

     forward(120)

     end_fill()

def present_good():        # 認為我是好人送的禮物

     setup(1000,700)

     pensize(10)

     hideturtle()

     numbers=[5,4,3,2,1]      # 進行倒數

     for i in numbers:

         draw_count_down(i)

         undo()

     draw_moon()

     draw_people()

     send_heart()

     wr_character()

     done()

def present_bad():     # 認為我不好送的禮物

     setup(1000, 700)

     pensize(10)

     hideturtle()

     numbers=[5,4,3,2,1]      # 進行倒數

     for i in numbers:

         draw_count_down(i)

         undo()

     draw_moon()

     draw_people()

     draw_pupu()

     wr_character()

     done()

layout=[                                    # 彈框內容設計

     [sg.Text(' 請輸入你的名字外匯跟單gendan5.com: ')],[sg.Input()],

     [sg.Text(' 請回答下面這個問題哦! ')],

     [sg.Text('xxx 是個大好人是嗎? ')],

     [sg.Button(' 是的是的 ')],[sg.Button(' 不是 ')]

]

sg.popup(' 你好呀!我是你的好朋友 xxx 為你定製的中秋節禮物⭐ ',' 請按 OK 鍵繼續 ') # 這是一個簡易彈框

time.sleep(1)

window=sg.Window(' 中秋禮物 ',layout)

event,value=window.read()

window.close()

if event == ' 是的是的 ':

     sg.popup(f'{value[0]} 請按 OK 鍵接收 xxx 的中秋禮物!♥ ')   # 這是一個簡易彈框   # 這裡的 value[0] ,是因為 value 返回內容為字典

     time.sleep(1)

     present_good()

else:

     sg.popup(f'{value[0]} 竟然對 xxx 有意見,你還想要禮物!! ',' 但是 xxx 是個大度的人,送你禮物吧 ',' 請按 OK 鍵接收 xxx 的中秋禮物! ')          

     present_bad()


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2793349/,如需轉載,請註明出處,否則將追究法律責任。

相關文章