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编译出的libcocos2dlua.so 体积

cocos2d-x\cocos\base\ccConfig.h 设置开关 0是不需要 1是需要 /** Use physics integration API. */ #ifndef CC_US...
  • litter_star
  • litter_star
  • 2016年09月26日 11:49
  • 1907

cocos2d-x Label描边问题以及解决办法

这里以quick_cocos2dx_3.3为例说明一下cocos2dx的Label描边问题以及个人想到的一个不是很完美的解决办法。 先上一段程序:     local label = displa...
  • su_sai
  • su_sai
  • 2016年04月06日 17:19
  • 3014

Cocos2d-x Lua中使用标签

游戏场景中的文字包括了静态文字和动态文字。静态文字如下图所示游戏场景中①号文字“COCOS2DX”,动态文字如图4-1所示游戏场景中的②号文字“Hello World”。静态文字一般是由美工使用Pho...
  • tonny_guan
  • tonny_guan
  • 2015年05月10日 21:57
  • 12381

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

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

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

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

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
  • 3912

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

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

cocos2d-x3.0导出自定义类到lua的测试源文件

  • 2014年05月28日 01:22
  • 4KB
  • 下载

Cocos2d-x3.2大富翁游戏项目开发apk测试版

  • 2015年03月09日 01:40
  • 17.91MB
  • 下载

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

很简单的程序,不多说,需要有个配置管理的模块,譬如你进行多少关,现在多少级,数据不多不少,总不能自己定配置文件格式,解析等等,用userdefalut吧,太不成熟的一个东西,虽然用过,但这一次还是想尝...
  • panshiqu
  • panshiqu
  • 2015年08月07日 11:09
  • 1835
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Cocos2d-x 3.2 Lua示例FontTest(字体测试)
举报原因:
原因补充:

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