猫史档案馆


【Python作品分享】弹幕发射器【教程贴】

用户:沉著的飞叶龙uZWJ沉著的飞叶龙uZWJ查看:0 回复:3 评论:0 创建时间:2020-05-28T21:01:56


【作品展示】

center_image

 

【作品介绍】

送给各位的。不用谢我。要谢就评论。

本作品是教程性的,作者写了巨量的注释。

希望你们喜欢!阿里嘎多!

 

【作品源代码】

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.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.01)#短暂停顿
            self.pen.undo()#然后立即撤销,进入下一循环,前进一点点再书写、撤销
try_danmu=danmu('测试',color='blue',pos=250,size=10,mode='italic')#作者的测试
try_danmu.go()#弹 幕 狂 欢
'''
turtle库是单线程的,也就是说弹幕只能一条一条发,各位用自己会的多线程库也来做一个呗,记得发评论区哦~
'''

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
沉著的飞叶龙uZWJ沉著的飞叶龙uZWJ

封面表面作者是学习时偷偷敲的,嘻嘻~

点赞1


评论


啸月666啸月666

emotion_doge

点赞0


评论


沉著的飞叶龙uZWJ沉著的飞叶龙uZWJ

作者建议各位在init函数中加上“self.pen.hideturtle()”这句,隐藏画笔

点赞0


评论