Cocos2d-x 3.2 Lua示例 CaptureScreen(截屏)
转载请注明: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) -- 第一个参数为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 -- 字体大小
-- 创建一个标签,名为capture all
local label1 = cc.Label:createWithTTF(ttfConfig, "capture all", cc.TEXT_ALIGNMENT_CENTER, winSize.width)
-- 创建菜单项标签
local mi1 = cc.MenuItemLabel:create(label1)
-- 注册点击回调方法
mi1:registerScriptTapHandler(onCaptured)
-- 创建菜单
local menu = cc.Menu:create(mi1)
-- 添加菜单到层中
layer:addChild(menu)
-- 设置在宽的一半,高的1/4的位置上
menu:setPosition(winSize.width / 2, winSize.height / 4)
return layer
end
--------------------------------
-- CaptureScreen
--------------------------------
function CaptureScreenTestMain()
-- 创建一个场景
local scene = cc.Scene:create()
-- 添加场景到层中
scene:addChild(createLayer())
-- 添加Back菜单项
scene:addChild(CreateBackMenuItem())
return scene
end
Cocos2d-x 提供以下方法用于截屏:
cc.utils:captureScreen(afterCaptured, fileName)
其中afterCaptured是自定义的回调方法,fileName为截屏文件名
如果觉得博文对您有用处,请到下面链接为小巫投上神圣的一票。
分享到:
相关推荐
资源名称:大富翁手机游戏开发实战基于Cocos2d-x3.2引擎内容简介:李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发...
Cocos2d-x 3.2 大富翁游戏项目开发apk测试版
cocos2d-x-3.2下载,不多说。或者可以下载另一个资源 cocos引擎老版本集合(cocos2d-x-2.2.1 - 3.5) http://download.csdn.net/download/crazymagicdc/9982656
李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发。本书根据大富翁项目一一展开讲解游戏开发过程中涉及的各方面内容...
cocos2d-x+lua游戏demo源码 xcode工程
使用cocos2d-x3.2编写的贪吃蛇游戏,包含主界面,游戏界面,帮助界面,界面的切换与游戏的实现。适用新手学习cocos2d-x3.2引擎。
Cocos2d-x 3.2 自动更新 使用AssetsManager更新游戏资源包
Cocos2d-x 3.2 大富翁游戏项目开发 截止到第四部分代码
Cocos2d-x 3.2 大富翁游戏项目开发-第十部分实现人物轮流行走
Cocos2d-X 3.2 的 API文档,自己从源代码提取,使用CHM格式方便查找和索引。 觉得不错给个好评哦~ 如果chm无法打开,请右键选择属性里面的“解除锁定”即可
Cocos2d-x3.2刀塔三消游戏源码 触摸 移动 消除 掉落 核心游戏逻辑
使用的cocos2d-x 3.2最新版本。 搜索了很久才搜索到完整的素材,空降物竟然也是黑白的,只好自己随便加了点颜色。重在练手,成功移植到了android真机。 详细内容,博客:...
cocos2d-x3.2与Firefly服务端信息交互的实例,代码演示了cocos2dx与Firefly服务端最简单的网络消息收发,用于引导超级新手使用Firefly搭建网络应用和网络游戏平台,高手请略过!
资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...
最新版的cocos2d-x实战 lua卷,分享给大家
cocos2d-x3.2 chm完全使用指南
Cocos2d-x 3.2 大富翁游戏项目开发关卡选择scrollview界面
用cocos2d-x 3.2写的贪吃蛇,基本功能都有
cocos2d-x 3.2 使用cocos studio导出的帧动画所用资源
这是用cocos2d-x3.2实现的华容道的部分代码和其所需资源