"""
移动汉字贺卡.py
"""
import os
import time
from random import randint
from turtle import RawTurtle,Shape,Turtle,Screen
from winsound import PlaySound,SND_ASYNC,SND_LOOP
from PIL import Image,ImageFont,ImageDraw,ImageTk
def txt2image(txt,filename=None,fontfile="msyh.ttf",fontsize=18,color=(25,0,255,255)):
"""
文本转图像实用小程序,只支持单行文本,默认为微软雅黑字体,
txt:文本
filename:要写入的文件名,如果为空则不写入,并且返回图形对象
fontfile:ttf字体文件
fontsize:字体大小
color:颜色,通过写alpha值可支持半透明图形。
"""
pass # 这里省略一些代码
def bounce_on_edge(self):
"""碰到边缘就反弹的方法"""
sw = self.screen.window_width()
sh = self.screen.window_height()
x = self.xcor()
y = self.ycor()
if x > sw/2 or x < -sw/2: # 到了最右边或最左边
self.seth(180 - self.heading()) # 改变方向
elif y > sh/2 or y < -sh/2: # 到了最上边或最下边
self.seth( -self.heading())
pass # 这里省略一些代码
screen.title('移动汉字贺卡by李兴球,网址:www.lixingqiu.com')
zi = screen.textinput('输入框','请输入贺词')
if zi==None or zi=="": zi = '风火轮编程祝本群所有人员身体健康'
shapes = [Photo(txt2image(z,fontsize=28,color='blue')) for z in zi]
def clickevent(x,y):
if shapes:
sp = shapes.pop(0)
c = Shape('image',sp) # 新建造型
screen.addshape(str(c),c) # 把造型添加到造型字典
z = Turtle(shape=str(c),visible=False)
z.penup()
z.speed(0)
z.seth(randint(180,360))
z.goto(x,y)
z.stamp()
z.showturtle()
else:
PlaySound('卓依婷-迎春花.wav',SND_LOOP|SND_ASYNC)
screen.onclick(None)
screen.bgpic('鱼.png')
g = Turtle(visible=False)
g.penup()
g.sety(-20)
g.color('magenta')
s = 'Python值得你拥有'
g.write(s,align='center',font=('',24,'bold'))
counter = 0
while True:
for z in screen.turtles():
z.fd(0.1)
z.bounce_on_edge()
counter += 1
if counter == 3000:
g.clear()
g.setx(0)
g.sety(-20)
g.color('red')
s = '本程序由Python海龟模块制作'
g.write(s,align='center',font=('',16,'bold'))
g.sety(-55)
g.color('gray')
s = '需要本程序源码的请加微信scratch8'
g.write(s,align='center',font=('',18,'underline'))
screen.onclick(clickevent)
screen.mainloop()
另外一个版本:
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

