Cocos2d-x 3.2 Lua示例FontTest(字体测试)
本篇博客介绍Cocos2d-x 3.2中Lua测试项目中的FontTest例子,主要使用了字体文件来创建我们想要的字体样式:
第一个参数为文本,第二参数为ttf字体文件,第三个参数为字体大小,第四个参数为块大小,第五个参数为文本横向对齐方式,第六个惨为文本纵向对齐方式。
例子效果图:
示例代码:(注:单独文件不可运行,具体可参考lua-tests)
--4个标签的Tag
local kTagLabel1 = 0
local kTagLabel2 = 1
local kTagLabel3 = 2
local kTagLabel4 = 3
-- 字体列表
local fontList = {
"fonts/A Damn Mess.ttf",
"fonts/Abberancy.ttf",
"fonts/Abduction.ttf",
"fonts/Paint Boy.ttf",
"fonts/Schwarzwald Regular.ttf",
"fonts/Scissor Cuts.ttf"
}
local fontCount = table.getn(fontList) -- 获得表元素个数
cclog("font count = "..fontCount)
local vAlignIdx = 1
local verticalAlignment = {
cc.VERTICAL_TEXT_ALIGNMENT_TOP, -- 对齐顶部
cc.VERTICAL_TEXT_ALIGNMENT_CENTER, -- 居中对齐
cc.VERTICAL_TEXT_ALIGNMENT_BOTTOM, -- 底部对齐
}
local vAlignCount = table.getn(verticalAlignment)
--[[
===============
显示字体
===============
]]--
local function showFont(ret, pFont)
cclog("vAlignIdx="..vAlignIdx)
local s = cc.Director:getInstance():getWinSize()-- 窗口大小
local blockSize = cc.size(s.width/3, 200)-- 块大小
local fontSize = 26--字体大小
-- 根据Tag移除子节点
ret:removeChildByTag(kTagLabel1, true)
ret:removeChildByTag(kTagLabel2, true)
ret:removeChildByTag(kTagLabel3, true)
ret:removeChildByTag(kTagLabel4, true)
-- static Label* createWithTTF(const std::string & text, const std::string & fontFile, float fontSize, const Size & dimensions = Size::ZERO,
--TextHAlignment hAlignment = TextHAlignment::LEFT,TextVAlignment vAlignment = TextVAlignment::TOP)
-- 第一个参数为文本,第二个参数为字体样式,第三个参数为字体大小,第四个参数为块大小,第五个参数为文本横向对齐,第六个参数为文本纵向对齐
local top = cc.Label:createWithTTF(pFont, pFont, 24)
local left = cc.Label:createWithTTF("alignment left", pFont, fontSize,
blockSize, cc.TEXT_ALIGNMENT_LEFT, verticalAlignment[vAlignIdx])
local center = cc.Label:createWithTTF("alignment center", pFont, fontSize,
blockSize, cc.TEXT_ALIGNMENT_CENTER, verticalAlignment[vAlignIdx])
local right = cc.Label:createWithTTF("alignment right", pFont, fontSize,
blockSize, cc.TEXT_ALIGNMENT_RIGHT, verticalAlignment[vAlignIdx])
-- 创建颜色层,第一个参数是颜色,第二个参数为宽度,第三个参数为高度
local leftColor = cc.LayerColor:create(cc.c4b(100, 100, 100, 255), blockSize.width, blockSize.height)
local centerColor = cc.LayerColor:create(cc.c4b(200, 100, 100, 255), blockSize.width, blockSize.height)
local rightColor = cc.LayerColor:create(cc.c4b(100, 100, 200, 255), blockSize.width, blockSize.height)
-- 忽略锚点对位置的影响 ,如果为true,锚点为(0,0)
leftColor:ignoreAnchorPointForPosition(false)
centerColor:ignoreAnchorPointForPosition(false)
rightColor:ignoreAnchorPointForPosition(false)
top:setAnchorPoint(cc.p(0.5, 1)) -- 设置锚点(0.5,1)
left:setAnchorPoint(cc.p(0,0.5))
leftColor:setAnchorPoint(cc.p(0,0.5))
center:setAnchorPoint(cc.p(0,0.5))
centerColor:setAnchorPoint(cc.p(0,0.5))
right:setAnchorPoint(cc.p(0,0.5))
rightColor:setAnchorPoint(cc.p(0,0.5))
top:setPosition(cc.p(s.width/2,s.height-20)) -- 设置显示位置
left:setPosition(cc.p(0,s.height/2))
leftColor:setPosition(left:getPosition())
center:setPosition(cc.p(blockSize.width, s.height/2))
centerColor:setPosition(center:getPosition())
right:setPosition(cc.p(blockSize.width*2, s.height/2))
rightColor:setPosition(right:getPosition())
ret:addChild(leftColor, -1)
ret:addChild(left, 0, kTagLabel1)
ret:addChild(rightColor, -1)
ret:addChild(right, 0, kTagLabel2)
ret:addChild(centerColor, -1)
ret:addChild(center, 0, kTagLabel3)
ret:addChild(top, 0, kTagLabel4)
end
local isFirst = true
local originCreateLayer = createTestLayer
local function createTestLayer()
if isFirst == false then
if Helper.index == 1 then
vAlignIdx = vAlignIdx % vAlignCount + 1
end
else
isFirst = false
end
local ret = originCreateLayer("")
showFont(ret, fontList[Helper.index])
return ret
end
function FontTestMain()
cclog("FontTestMain")
Helper.index = 1
vAlignIdx = 1
local scene = cc.Scene:create()
-- 创建方法表
Helper.createFunctionTable = {
createTestLayer,
createTestLayer,
createTestLayer,
createTestLayer,
createTestLayer,
createTestLayer
}
scene:addChild(createTestLayer()) -- 添加测试层
scene:addChild(CreateBackMenuItem())--添加后退按钮
return scene
end
分享到:
相关推荐
这是书籍 Cocos2d-x实战:Lua卷(第2版)的代码,关东升老师的,这里分享出来。除了章节的小示例代码外,还有一个《迷失航线》的游戏示例代码。这是一个下载地址。
第1章 Cocos2D-X引擎的介绍 1 1.1 何为游戏引擎 1 1.1.1 游戏的核心—引擎 1 1.1.2 引擎的特点 2 1.1.3 知名的引擎介绍 4 1.1.4 引擎的分类 5 1.2 Cocos2D-X引擎的来历 8 1.3 引擎的版本 9 1.4 下载与安装 10 1.5 ...
cocos2d-x-lua测试案例修复了cocos2d-x LUA示例代码,并使其可以在 Ko, Cocos Code IDE更新中
lua_c++ 交互原理 cocos2d手动绑定示例 cocos2d自动绑定工具:环境配置,使用详细说明,使用见解 试用于想要了解lua绑定的新人
cocos2d-Lua示例demo源码踩虫子-MOD美国大兵
快速界面控制 快速 cocos2d-x uicontrol 示例
Cocos2d-lua示例(一)排行榜之TableView-附件资源
MoonWarriors-lua是为了学习Cocos2d-x Lua开发而移植的Quick-Cocos2d-x版本。移植过程中,体验了一回JS代码到Lua代码的各自语法特性。 1、增加了屏幕分辨率适配。 2、修复了原版本的偶尔屏幕卡顿问题。 界面载图: ...
cocos2dx-lua 自定义事件类
入门 运行安装程序脚本,它将自动下载其依赖项 ...SDKBOX示例使用共享的cocos2d-x二进制文件来减少下载 文献资料 有关更多信息,请查看 跑步 在发布模式下编译: cocos run -p android -m release
#cocos2dx 播放视频插件 ##停止维护 貌似看到cocos2dx v3 版已经自带了一个videoplayer, 所以这个就停止维护了! ##特性: lua绑定 播放完成事件回调 支持android, ios平台 ##使用示例: -- 播放完之后的回调函数 local...