Python 弹窗设计小人发射爱心

这些代码里含有弹窗设计,可以根据好友选择来进入不同画面,简单有趣的中秋礼物哦

这是我第一次用turtle画画,水平有限,如有问题,请指正哦!(还没有进一步简化,代码写得很啰嗦。)

如果想发给朋友的话,可以将代码打包为exe,具体步骤如下:

  • 1.先在桌面创建文件夹
  • 2.将要打包的python文件放进该文件夹
  • 3.在该文件夹打开命令行(如图)并输入:pyinstaller -F filename.py(你的文件名)
  • 4.在dist文件夹里就可以找到你想要的小程序啦hhhhhh

先来两张成果图(这是经过弹窗选择后的不同结果)

下面是代码,需要自取哦!

##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, align="center",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('请输入你的名字:')],[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()

弹框里的问题和文字大家可以根据自己的想法进行设计哈!

最后,祝大家中秋快乐!!!

到此这篇关于Python 弹窗设计小人发射爱心的文章就介绍到这了,更多相关Python 小人发射爱心内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 利用Python如何画一颗心、小人发射爱心

    源码: #!/usr/bin/env python # -*- coding:utf-8 -*- import turtle import time # 画心形圆弧 def hart_arc(): for i in range(200): turtle.right(1) turtle.forward(2) def move_pen_position(x, y): turtle.hideturtle() # 隐藏画笔(先) turtle.up() # 提笔 turtle.goto(x, y) #

  • 使用Python画出小人发射爱心的代码

    我就废话不多说了,直接上代码吧! #2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) down() def head(x,y,r): go_to(x,y) speed(1) circle(r) leg(x,y) def leg(x,y): right(90) forward(180) right(30) forward(100) left(120) go_to(x,y-180) fo

  • Python 弹窗设计小人发射爱心

    这些代码里含有弹窗设计,可以根据好友选择来进入不同画面,简单有趣的中秋礼物哦 这是我第一次用turtle画画,水平有限,如有问题,请指正哦!(还没有进一步简化,代码写得很啰嗦.) 如果想发给朋友的话,可以将代码打包为exe,具体步骤如下: 1.先在桌面创建文件夹 2.将要打包的python文件放进该文件夹 3.在该文件夹打开命令行(如图)并输入:pyinstaller -F filename.py(你的文件名) 4.在dist文件夹里就可以找到你想要的小程序啦hhhhhh 先来两张成果图(这是经

  • python练习之曾经很火的小人画爱心表白代码

    导语 哈喽!我是木木子,又到了今日更新时刻!​ ​ 我们来看看写什么呢? 小编有个好兄弟最近在追妹子,跟妹子打得火热!就差临门一脚了,这一jio我帮忙补上去了! 他问有没有什么酷炫的表白方式,可以给人心动的赶jio,表白的方式有许多种 今天木木子来教大家一个之前很火的小人画爱心表白代码! 正文 Turtle库是python的基础绘图库,这个库使用起来很方便,了解基础的一些信息之后学起来很快是小编绘图的首选! 首先绘制爱心 import turtle import time # 画心形圆弧 def

  • Python使用turtle模块绘制爱心图案

    程序员的浪漫,你懂吗? 今天使用python小海龟实现爱心图案的绘制,代码如下: import turtle import time # 清屏函数 def clear_all(): turtle.penup() turtle.goto(0, 0) turtle.color('white') turtle.pensize(800) turtle.pendown() turtle.setheading(0) turtle.fd(300) turtle.bk(600) # 重定位海龟的位置 def g

  • python 详解turtle画爱心代码

    导语: 哈喽,在经历了过年相亲这一环节,成了是好事,不成也是多认识一个人,见见"世面",也可以"开拓"一下眼界,说不定遇到什么奇葩,以后跟朋友也有了茶余饭后的话题. 希望我们在这快餐时代里,都能遇到小火慢炖的粥~ 正文: 一直觉得turtle是个非常可爱的库,突发奇想,然后想试试传说中的土味表白:用python画一颗小爱心-- Google programming!启动! 确实有很多很多现成的代码,比如[1]: 画出来也很好看: 但左看右看,觉得背后的逻辑,比如fo

  • python 弹窗提示警告框MessageBox的实例

    需要安装pywin32模块,pip install pywin32 ##pip install pywin32 import win32api,win32con ##提醒OK消息框 win32api.MessageBox(0, "这是一个测试提醒OK消息框", "提醒",win32con.MB_OK) ##是否信息框 win32api.MessageBox(0, "这是一个测试是否信息框", "提醒",win32con.MB_

  • 教你利用Python+Turtle绘制简易版爱心表白

    一.效果 快放10倍 总共分为三部分,左上角的正文,下方的心形和右下角的署名 特别需要注意的一点是这种东西不但要装Python,还与分辨率有关(换个屏幕可能效果雪崩,因为用的是绝对坐标),因此并不建议实际拿去弄(哪怕能解决上述两个问题) 二.正文部分 效果: 本质是每写一行话,然后将坐标下移换行,再写一行,以此类推 # content就是该行的内容了,想些啥写啥吧 def drawLine(content, x, y, sleep=3): goto(x, y) write(content, fo

  • Python 不设计 do-while 循环结构的理由

    在某些编程语言中,例如 C/C++.C#.PHP.Java.JavaScript 等等,do-while 是一种基本的循环结构. 它的核心语义是:先执行一遍循环体代码,然后执行一遍条件语句,若条件语句判断为真,则继续执行循环体代码,并再次执行条件语句:直到条件语句判断为假,则跳出循环结构. 流程图如下(Java 示例): // 打印小于 20 的数字 public class Test { public static void main(String[] args){ int x = 10; d

  • python中的tkinter库弹窗messagebox详解

    〝 古人学问遗无力,少壮功夫老始成 〞 python之tkinter库弹窗messagebox,常码字不易,出精品更难,没有特别幸运,那么请先特别努力,别因为懒惰而失败,还矫情地将原因归于自己倒霉.你必须特别努力,才能显得毫不费力.如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示支持,谢谢各位小伙伴们. Tkinter 是 Python 自带的图形界面库,库中包含众多图形界面控件,包括 Lable 标签.Button按钮.Radiobutton单选框.Checkbutton复选框.

随机推荐