Lv.1
无
在 【Python作品分享】turtle弹幕【求助帖】 中回复
import turtle
import time#准备
class danmu():#创建弹幕类
def __init__(self,text,pos=0,color='black',speed=5,size=20,font="微软雅黑",mode='normal'):#设置可调整的参数
self.text=text#设置弹幕文字
self.size=size#设置弹幕大小
self.font=font#设置弹幕字体
self.mode=mode#设置弹幕样式
self.speed=speed#设置弹幕速度
self.pen=turtle.Pen()#建立绘制弹幕的画笔
self.pen.hideturtle()#隐藏画笔
self.pen.pu()#画笔抬笔,不然弹幕过后会留下痕迹
self.pen.goto(350,pos)#移动到发射坐标(go函数中没有再用到pos参数,不用全局实例化)
self.pen.setheading(180)#从右往左,B站传统
self.pen.speed(0)#满速度,避免不必要的停顿
self.pen.color(color,color)#设置颜色(同pos,下面没用到)
def go(self):
for i in range(int(750/self.speed)):#一条弹幕走750格,用750÷速度控制发射速度
self.pen.fd(self.speed)#完成一帧前进
self.pen.write(self.text,font=(self.font,self.size,self.mode))#书写弹幕(按传入的字体、大小、样式)
time.sleep(0.02)#短暂停顿
self.pen.undo()#然后立即撤销,进入下一循环,前进一点点再书写、撤销
dms=[danmu('开幕雷击',pos=300,speed=15,color='#66ccff'),danmu('开幕雷击',pos=280,speed=15,color='#66ccff')
,danmu('开幕雷击',pos=260,speed=15,color='#66ccff'),danmu('开幕雷击',pos=240,speed=15,color='#66ccff')
,danmu('开幕雷击',pos=220,speed=15,color='#66ccff'),danmu('开幕雷击',pos=200,speed=15,color='#66ccff')]
for a in dms:
a.go()
'''
turtle库是单线程的,也就是说弹幕只能一条一条发,各位用自己会的多线程库也来做一个呗,记得发评论区哦~
'''
送你的
2020-05-30T09:04:41 点赞:1
在 【Python作品分享】喵机器人🤖️【作业帖】 中回复
while True:
print("机器人:你是在说",input('你:'),'吗?')
究极喵
2020-06-19T19:57:47 点赞:0