Cocos2d-x 3.2 Lua示例FontTest(字体测试)

转载 2015年07月07日 17:53:09

Cocos2d-x 3.2 Lua示例FontTest(字体测试)


  本篇博客介绍Cocos2d-x 3.2中Lua测试项目中的FontTest例子,主要使用了字体文件来创建我们想要的字体样式:


第一个参数为文本,第二参数为ttf字体文件,第三个参数为字体大小,第四个参数为块大小,第五个参数为文本横向对齐方式,第六个惨为文本纵向对齐方式。


例子效果图:








示例代码:(注:单独文件不可运行,具体可参考lua-tests)

[javascript] view plaincopy
  1. --4个标签的Tag  
  2. local  kTagLabel1 = 0  
  3. local  kTagLabel2 = 1  
  4. local  kTagLabel3 = 2  
  5. local  kTagLabel4 = 3  
  6.   
  7. -- 字体列表  
  8. local  fontList = {  
  9.   "fonts/A Damn Mess.ttf",  
  10.   "fonts/Abberancy.ttf",  
  11.   "fonts/Abduction.ttf",  
  12.   "fonts/Paint Boy.ttf",  
  13.   "fonts/Schwarzwald Regular.ttf",  
  14.   "fonts/Scissor Cuts.ttf"  
  15. }  
  16.   
  17.   
  18. local fontCount = table.getn(fontList) -- 获得表元素个数  
  19. cclog("font count = "..fontCount)  
  20.   
  21. local vAlignIdx = 1  
  22. local verticalAlignment = {  
  23.   cc.VERTICAL_TEXT_ALIGNMENT_TOP,  -- 对齐顶部  
  24.   cc.VERTICAL_TEXT_ALIGNMENT_CENTER, -- 居中对齐  
  25.   cc.VERTICAL_TEXT_ALIGNMENT_BOTTOM, -- 底部对齐  
  26. }  
  27.   
  28. local vAlignCount = table.getn(verticalAlignment)  
  29.   
  30. --[[  
  31. ===============  
  32. 显示字体  
  33. ===============  
  34. ]]--  
  35. local function showFont(ret, pFont)  
  36.   
  37.   cclog("vAlignIdx="..vAlignIdx)  
  38.   local s = cc.Director:getInstance():getWinSize()-- 窗口大小  
  39.   
  40.   local blockSize = cc.size(s.width/3, 200)-- 块大小  
  41.   local fontSize = 26--字体大小  
  42.   
  43.   -- 根据Tag移除子节点  
  44.   ret:removeChildByTag(kTagLabel1, true)  
  45.   ret:removeChildByTag(kTagLabel2, true)  
  46.   ret:removeChildByTag(kTagLabel3, true)  
  47.   ret:removeChildByTag(kTagLabel4, true)  
  48.   
  49.   -- static Label* createWithTTF(const std::string & text, const std::string & fontFile, float fontSize, const Size & dimensions = Size::ZERO,  
  50.   --TextHAlignment hAlignment = TextHAlignment::LEFT,TextVAlignment vAlignment = TextVAlignment::TOP)  
  51.     
  52.   -- 第一个参数为文本,第二个参数为字体样式,第三个参数为字体大小,第四个参数为块大小,第五个参数为文本横向对齐,第六个参数为文本纵向对齐  
  53.   local top = cc.Label:createWithTTF(pFont, pFont, 24)  
  54.   local left = cc.Label:createWithTTF("alignment left", pFont, fontSize,  
  55.     blockSize, cc.TEXT_ALIGNMENT_LEFT, verticalAlignment[vAlignIdx])  
  56.   local center = cc.Label:createWithTTF("alignment center", pFont, fontSize,  
  57.     blockSize, cc.TEXT_ALIGNMENT_CENTER, verticalAlignment[vAlignIdx])  
  58.   local right = cc.Label:createWithTTF("alignment right", pFont, fontSize,  
  59.     blockSize, cc.TEXT_ALIGNMENT_RIGHT, verticalAlignment[vAlignIdx])  
  60.   
  61.   
  62.   -- 创建颜色层,第一个参数是颜色,第二个参数为宽度,第三个参数为高度  
  63.   local leftColor = cc.LayerColor:create(cc.c4b(100, 100, 100, 255), blockSize.width, blockSize.height)  
  64.   local centerColor = cc.LayerColor:create(cc.c4b(200, 100, 100, 255), blockSize.width, blockSize.height)  
  65.   local rightColor = cc.LayerColor:create(cc.c4b(100, 100, 200, 255), blockSize.width, blockSize.height)  
  66.   
  67.   -- 忽略锚点对位置的影响 ,如果为true,锚点为(0,0)  
  68.   leftColor:ignoreAnchorPointForPosition(false)  
  69.   centerColor:ignoreAnchorPointForPosition(false)  
  70.   rightColor:ignoreAnchorPointForPosition(false)  
  71.   
  72.   top:setAnchorPoint(cc.p(0.5, 1)) -- 设置锚点(0.5,1)  
  73.   left:setAnchorPoint(cc.p(0,0.5))  
  74.   leftColor:setAnchorPoint(cc.p(0,0.5))  
  75.   center:setAnchorPoint(cc.p(0,0.5))  
  76.   centerColor:setAnchorPoint(cc.p(0,0.5))  
  77.   right:setAnchorPoint(cc.p(0,0.5))  
  78.   rightColor:setAnchorPoint(cc.p(0,0.5))  
  79.   
  80.   top:setPosition(cc.p(s.width/2,s.height-20)) -- 设置显示位置  
  81.   left:setPosition(cc.p(0,s.height/2))  
  82.   leftColor:setPosition(left:getPosition())  
  83.   center:setPosition(cc.p(blockSize.width, s.height/2))  
  84.   centerColor:setPosition(center:getPosition())  
  85.   right:setPosition(cc.p(blockSize.width*2, s.height/2))  
  86.   rightColor:setPosition(right:getPosition())  
  87.   
  88.   ret:addChild(leftColor, -1)  
  89.   ret:addChild(left, 0, kTagLabel1)  
  90.   ret:addChild(rightColor, -1)  
  91.   ret:addChild(right, 0, kTagLabel2)  
  92.   ret:addChild(centerColor, -1)  
  93.   ret:addChild(center, 0, kTagLabel3)  
  94.   ret:addChild(top, 0, kTagLabel4)  
  95. end  
  96.   
  97. local isFirst = true  
  98. local originCreateLayer = createTestLayer  
  99. local function createTestLayer()  
  100.   if isFirst == false then  
  101.     if Helper.index == 1 then  
  102.       vAlignIdx =  vAlignIdx % vAlignCount + 1  
  103.     end  
  104.   else  
  105.     isFirst = false  
  106.   end  
  107.   
  108.   local ret = originCreateLayer("")  
  109.   showFont(ret, fontList[Helper.index])  
  110.   return ret  
  111. end  
  112.   
  113. function FontTestMain()  
  114.   cclog("FontTestMain")  
  115.   Helper.index = 1  
  116.   vAlignIdx = 1  
  117.   local scene = cc.Scene:create()  
  118.   -- 创建方法表  
  119.   Helper.createFunctionTable = {  
  120.     createTestLayer,  
  121.     createTestLayer,  
  122.     createTestLayer,  
  123.     createTestLayer,  
  124.     createTestLayer,  
  125.     createTestLayer  
  126.   }  
  127.   scene:addChild(createTestLayer()) -- 添加测试层  
  128.   scene:addChild(CreateBackMenuItem())--添加后退按钮  
  129.   return scene  
  130. end  

相关文章推荐

Cocos2d-x 3.2 Lua示例 ActionTest(动作测试)

 Cocos2d-x官方真够给力的,3.1.1还没有熟悉完,3.2就出来,本篇博客继续介绍Cocos2d-x的Lua示例,关于3.2的例子变动不是很大,稍微介绍一下3.2的新特性吧: 3.2版...

Cocos2d-x 3.2 Lua示例 XMLHttpRequestTest(Http网络请求)

Cocos2d-x 3.2 Lua示例 XMLHttpRequestTest(Http网络请求)
  • wwj_748
  • wwj_748
  • 2014年08月11日 14:01
  • 17202

Cocos2d-x 3.2 Lua示例CurrentLanguageTest(当前语言环境)

Cocos2d-x 3.2 Lua示例CurrentLanguageTest(当前语言环境)转载请注明:IT_xiao小巫    本篇博客介绍Cocos2d-x 3.2给我们提供的一个例子,获取当前程...
  • wwj_748
  • wwj_748
  • 2014年08月08日 16:42
  • 3807

Cocos2d-x 3.2 Lua示例 AssetsManagerTest(资源管理器)

Cocos2d-x 3.2 Lua示例 AssetsManagerTest(资源管理器)
  • wwj_748
  • wwj_748
  • 2014年08月04日 15:27
  • 10148

Cocos2d-x 3.2 Lua项目通过LuaSQLite3使用Sqlite3问题总结

很简单的程序,不多说,需要有个配置管理的模块,譬如你进行多少关,现在多少级,数据不多不少,总不能自己定配置文件格式,解析等等,用userdefalut吧,太不成熟的一个东西,虽然用过,但这一次还是想尝...

《Cocos2d-x-3.2 Lua-tests》文件详解 之 加速器

转到游戏开发已经俩月了(第一个月还是酱油过来的),主要是用cocos2d-x + Lua脚本做语言快速开发。几个项目下来,体味到了cocos2d-x 和 Lua的强大之处。 但是有些东西掌握地不牢,...

【cocos2d-x3.2游戏开发】 lua 类, 继承, 面向对象

lua没有面向对象一说,cocos为我们准备了class的lua端函数,我们参考quick的class函数 --[[-- 创建一个类 ~~~ lua -- 定义名为 Shape 的基础类 loc...

Cocos2d-x 3.2 lua飞机大战开发实例(三)道具的掉落,碰撞检测,声音,分数,爆炸效果,完善游戏的功能细节

Cocos2d-X 3.2  lua语言飞机大战开发实例(三) 7.添加声音,更新分数,添加爆炸效果,道具的掉落、道具的碰撞检测等完善游戏功能  爆炸的效果添加 ...
  • wy_boke
  • wy_boke
  • 2014年12月20日 17:12
  • 832
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Cocos2d-x 3.2 Lua示例FontTest(字体测试)
举报原因:
原因补充:

(最多只允许输入30个字)