Swift3.0做弹幕

BarrageRenderer 一个 iOS 上的开源弹幕渲染库, readme 都是用中文写,很容易理解。

首先 ,下载下轮子,把BarrageRenderer/目录拖到你的工程文件夹下。

其次,在你的 桥接文件里

#import "BarrageRenderer.h"

然后你就可以在项目里使用这个轮子了。

接着说下怎么使用轮子: 当然在readme里有非常详细的介绍
上代码: 在你的VC 中使用

var renderer:BarrageRenderer!
// MARK: - 构建弹幕,添加到VC的view
    func buildDanMu() {
        self.renderer = BarrageRenderer.init()
        self.renderer.canvasMargin = UIEdgeInsetsMake(SCREEN_WIDTH * 0.3, 10, 10, 10)
        self.view.addSubview(renderer.view)
// 这两句相信你看的懂
        let safeObj = NSSafeObject.init(object: self, withSelector: #selector(PlayViewController.autoSenderBarrage))
        timer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: safeObj, selector: #selector(NSSafeObject.excute), userInfo: nil, repeats: true)

    }
// 这是自动发送的方法,这里判断下,限制屏幕上弹幕的数量
func autoSenderBarrage() {
        let spriteNumber :NSInteger = renderer.spritesNumberWithName(nil)
        if spriteNumber <= 50 {
            renderer.receive(walkTextSpriteDescriptorWithDirection(BarrageWalkDirection.R2L.rawValue))
        }
    }

最精彩的部分来了,这里就是你想显示怎么样的弹幕。

func walkTextSpriteDescriptorWithDirection(direction:UInt) -> BarrageDescriptor{
        let descriptor:BarrageDescriptor = BarrageDescriptor()
        descriptor.spriteName = NSStringFromClass(BarrageWalkTextSprite.self)
        descriptor.params["text"] = self.danmuText[Int(arc4random())%(self.danmuText.count)]
        descriptor.params["textColor"] = UIColor(red: CGFloat(arc4random()%255) / 255, green: CGFloat(arc4random()%255) / 255, blue: CGFloat(arc4random()%255) / 255, alpha: 1)
        descriptor.params["speed"] = Int(arc4random()%100) + 50
        descriptor.params["direction"] = direction
        return descriptor
    }

在这里,离开界面的时候最好把弹幕停止,并且将弹幕的view从视图上移除
weakSelf!.renderer.stop()&& weakSelf!.renderer.view.removeFromSuperview()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值