Cocos2d-x 3,Alibaba高并发业务实战文档

转载请注明:IT_xiao小巫

Cocos2d-x截屏功能是从3.2开始提供的,本篇博客就是介绍Cocos2d-x 3.2中Lua示例中的截屏功能。效果如下所示:

例子代码如下:

–[[

截屏测试

CaptureScreenTest

]]–

– 获取屏幕大小

local winSize = cc.Director:getInstance():getWinSize()

local kTagSprite = 1

local childTag = 119

– 创建层

local function createLayer()

– 创建层

local layer = cc.Layer:create()

local filename = “”-- 文件名

– 标题

local title = cc.Label:createWithTTF(“New Renderer”, “fonts/arial.ttf”, 36)

title:setColor(cc.c3b(255,255,0)) – 设置颜色为黄色

layer:addChild(title, 1, 10000) – 第一个参数

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

为node,第二个参数为zorder,第三个参数是tag

title:setPosition( cc.p(VisibleRect:center().x, VisibleRect:top().y - 30))-- 设置位置top,center

– 子标题

local subTitle = cc.Label:createWithTTF(“Capture screen test, press the menu items to capture the screen”, “fonts/arial.ttf”, 12)

subTitle:setColor(cc.c3b(255,255,0)) – 设置为黄色

layer:addChild(subTitle, 1, 10001) – 设置tag为10001

subTitle:setPosition( cc.p(VisibleRect:center().x, VisibleRect:top().y - 60) )-- 设置位置

– 左边位置

local left = cc.p(winSize.width / 4, winSize.height / 2)

– 右边位置

local right = cc.p(winSize.width / 4 * 3, winSize.height / 2)

– 精灵1

local sp1 = cc.Sprite:create(“Images/grossini.png”)

sp1:setPosition(left)-- 设置初始位置在左边

local move1 = cc.MoveBy:create(1, cc.p(winSize.width/2, 0))–移动动作,持续1秒

– 动作序列1

local seq1 = cc.RepeatForever:create(cc.Sequence:create(move1, move1:reverse()))

layer:addChild(sp1)–添加精灵1

sp1:runAction(seq1)-- 执行动作序列

– 精灵2

local sp2 = cc.Sprite:create(“Images/grossinis_sister1.png”)

sp2:setPosition(right)-- 设置初始位置在右边

local move2 = cc.MoveBy:create(1, cc.p(-winSize.width/2, 0))-- 移动动作,持续1秒

– 动作序列2

local seq2 = cc.RepeatForever:create(cc.Sequence:create(move2, move2:reverse()))

layer:addChild(sp2)-- 添加精灵2

sp2:runAction(seq2) – 执行动作序列2

–截屏回调方法

local function afterCaptured(succeed, outputFile)

if succeed then

local sp = cc.Sprite:create(outputFile)

layer:addChild(sp, 0, childTag)

sp:setPosition(winSize.width / 2, winSize.height / 2)

sp:setScale(0.25) – 显示缩放

fileName = outputFile

else

cclog(“Capture screen failed.”)

end

end

– 点击标签回调的方法

local function onCaptured(tag, sender)

– 移除纹理缓存

cc.Director:getInstance():getTextureCache():removeTextureForKey(fileName)

layer:removeChildByTag(childTag)

fileName = “CaptureScreenTest.png”

– 截屏

cc.utils:captureScreen(afterCaptured, fileName)

end

local ttfConfig = {} – 字体配置表

ttfConfig.fontFilePath = “fonts/arial.ttf” – 字体路径

ttfConfig.fontSize = 24 – 字体大小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值