Cocos2d-x 3.2 Lua演示样例FontTest(字体測试)
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())--加入后退button
return scene
end
Cocos2d-x 3.2 Lua演示样例FontTest(字体測试)的更多相关文章
- Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理)
Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理) 本篇博客介绍Cocos2d-x的动作管理样例,这个样例展示了Cocos2d-x的几个动作: MoveTo ...
- Cocos2d-x 3.1.1 Lua演示样例 ActionEaseTest(动作)
Cocos2d-x Lua演示样例 ActionEaseTest(动作) 本篇博客介绍Cocos2d-x中的动作,Cocos2d-x为我们提供了丰富的动作接口,以下笔者就具体介绍一下: 本系列 ...
- Cocos2d-x 3.2 Lua演示样例 ClickAndMoveTest(点击移动測试)
Cocos2d-x 3.2 Lua演示样例 ClickAndMoveTest(点击移动測试) 本篇博客介绍Cocos2d-x 3.2Lua演示样例中点击移动的样例,在这个样例你能够得到怎样创建单点触 ...
- Cocos2d-x 3.2 Lua演示样例 XMLHttpRequestTest(Http网络请求)
Cocos2d-x 3.2 Lua演示样例 XMLHttpRequestTest(Http网络请求) 本篇博客介绍Cocos2d-x 3.2Lua演示样例中的XMLHttpRequestTes ...
- Cocos2d-x 3.2 Lua演示样例 AssetsManagerTest(资源管理器)
Cocos2d-x 3.2 Lua演示样例 AssetsManagerTest(资源管理器) 本篇博客介绍Cocos2d-x 为我们提供的一个类--AssetsManager在Lua中的使用样例,效果 ...
- Cocos2d-x 3.1.1 Lua演示样例 ActionsProgressTest(进度条)
Cocos2d-x 3.1.1 Lua演示样例 ActionsProgressTest(进度条) 本篇博客介绍Cocos2d-x中的进度条动画,进度条涉及以下几个重要的类和方法,笔者来给大家具体解说一 ...
- Cocos2d-x 3.2 Lua演示样例CurrentLanguageTest(当前语言环境)
Cocos2d-x 3.2 Lua演示样例CurrentLanguageTest(当前语言环境) 转载请注明:IT_xiao小巫 本篇博客介绍Cocos2d-x 3.2给我们提供的一个样例.获取当前程 ...
- 01_MUI之Boilerplate中:HTML5演示样例,动态组件,自己定义字体演示样例,自己定义字体演示样例,图标字体演示样例
1安装HBuilder5.0.0,安装后的界面截图例如以下: 2 依照https://www.muicss.com/docs/v1/css-js/boilerplate-html中的说明,创建上 ...
- Cocos2d-x-Lua演示样例项目HelloLua
Cocos2d-x-Lua演示样例项目HelloLua 本篇博客介绍Cocos2d-x中Lua的实例项目,就是使用Cocos2d-x创建的初始项目执行所呈现的农场,这里笔者取名为HelloLua.本篇 ...
随机推荐
- 使用Vue脚手架(vue-cli)从零搭建一个vue项目(包含vue项目结构展示)
注:在搭建项目之前,请先安装一些全局的工具(如:node,vue-cli等) node安装:去node官网(https://nodejs.org/en/)下载并安装node即可,安装node以后就可以 ...
- (转)Linux下使用rsync最快速删除海量文件的方法
转自 : http://www.ha97.com/4107.html 昨天遇到了要在Linux下删除海量文件的情况,需要删除数十万个文件.这个是之前的程序写的日志,增长很快,而且没什么用.这个时候,我 ...
- Keil 编译环境之在线仿真调试问题
一.问题现象: 这几天刚开始上手STM32,使用Keil 环境进行编程,然后使用ULINK2进行在线仿真,在按键处理函数程序中设置断点,却发现按了按键程序没有停在设置的断点,程序正常运行,如下图所示, ...
- Method of address space layout randomization for windows operating systems
A system and method for address space layout randomization ("ASLR") for a Windows operatin ...
- 【天气APP】之桌面时钟witget组件
桌面时钟之组件开发: 整个流程例如以下: 下载地址demo:www.github.com/xufeifandj service+组件+广播进行后台实时更新时间 (一)开机广播监听开机启动service ...
- 异步FIFO设计
参考http://www.cnblogs.com/BitArt/archive/2013/04/10/3010073.html http://blog.sina.com.cn/s/blog_6d30f ...
- html5 10大html5前端框架
Bootstrap 首先说 Bootstrap,估计你也猜到会先说或者一定会有这个( 呵呵了 ),这是说明它的强大之处,拥有框架一壁江山的势气.自己刚入道的时候本着代码任何一个字母都得自己敲出来挡我者 ...
- 2、HZK和FreeType的使用
HZK16汉字库的使用 定义如下: unsigned char str[]="我" 在运行时str被初始化为2个字节长度,内容为“我”的GBK码,为:0xCE(区码),0xD2(位 ...
- Android 系统状态栏一体化实现
自上周更新了QQ手机client.对于新版本号的QQ,系统状态栏也有蓝色色调,看起来有种清爽感觉.于是想自已也实现这样的效果,随查阅资料,自已调试实现这样的效果.Android 系统4.4以上都能够具 ...
- bootstrap课程2 bootstrap的栅格系统的主要作用是什么
bootstrap课程2 bootstrap的栅格系统的主要作用是什么 一.总结 一句话总结:响应式布局(就是适应不同的屏幕,手机,平板,电脑) 1.bootstrap的栅格系统如何使用? row ...