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)
endlocal isFirst = true
local originCreateLayer = createTestLayer
local function createTestLayer()if isFirst == false thenif Helper.index == 1 thenvAlignIdx =  vAlignIdx % vAlignCount + 1endelseisFirst = falseendlocal ret = originCreateLayer("")showFont(ret, fontList[Helper.index])return ret
endfunction FontTestMain()cclog("FontTestMain")Helper.index = 1vAlignIdx = 1local scene = cc.Scene:create()-- 创建方法表Helper.createFunctionTable = {createTestLayer,createTestLayer,createTestLayer,createTestLayer,createTestLayer,createTestLayer}scene:addChild(createTestLayer()) -- 加入測试层scene:addChild(CreateBackMenuItem())--加入后退buttonreturn scene
end

Cocos2d-x 3.2 Lua演示样例FontTest(字体測试)相关推荐

  1. Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理)

    Cocos2d-x 3.1.1 Lua演示样例 ActionManagerTest(动作管理) 本篇博客介绍Cocos2d-x的动作管理样例,这个样例展示了Cocos2d-x的几个动作: MoveTo ...

  2. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  3. Oracle简单脚本演示样例

    Oracle简单脚本演示样例 1.添加表 --改动日期:2014.09.21 --改动人:易小群 --改动内容:新增採购支付情况表 DECLARE VC_STR           VARCHAR2( ...

  4. EEPlat vs saleforce 配置 Knowledge Article 演示样例

    ==================================================================================================== ...

  5. 模式识别 - 处理多演示样例学习(MIL)特征(matlab)

    处理多演示样例学习(MIL)特征(matlab) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27206325 多演示样例学习( ...

  6. 百度地图 Android SDK - 检索功能使用的简单演示样例

    百度地图 SDK 不仅为广大开发人员提供了炫酷的地图展示效果.丰富的覆盖物图层,更为广大开发人员提供了多种 LBS 检索的能力. 通过这些接口,开发人员能够轻松的訪问百度的 LBS 数据,丰富自己的移 ...

  7. RPM安装包-Spec文件參数具体解释与演示样例分析

    spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件. 1.Spec文件參数 spec文件包括建立一个RPM包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个 ...

  8. Androidclient与服务端交互之登陆演示样例

    今天了解了一下androidclient与服务端是如何交互的,发现事实上跟web有点类似吧,然后网上找了大神的登陆演示样例.是基于IntentService的 1.后台使用简单的servlet,支持G ...

  9. JBoss 系列九十六:JBoss MSC - 简介及一个简单演示样例

    什么是 JBoss MSC JBoss MSC 即 JBoss Modular Service Container,是第三代 JBoss 产品 JBoss 7和WildFfly的内核,JBoss MS ...

最新文章

  1. 都说区块链颠覆未来,区块链究竟能改变什么?
  2. 音乐产业碰撞人工智能,这次擦出了怎样的新火花?
  3. Shell(7)——case
  4. matlab 多维数组申明
  5. thinkphp手机版小说网站源码
  6. Alibaba seata 分布式事务介绍及配置使用
  7. Chrome下的语音控制框架MyVoix.js使用篇(二)
  8. php+5.3.15下载,Rapid PHP2018
  9. 学习资料(干货汇集)不断更新【更新于2017-9-17】
  10. 圈圈教你玩usb第一版件软件使用说明
  11. java的mergesort函数_MergeSort -- 归并排序
  12. 光猫修改rms服务器地址大全,华为光猫备份jffs2及HG8321R-RMS切换HG8321版本教程
  13. multisim的汉化
  14. autojs读取文字_Auto.js 获取识别图片文本
  15. 计算机启动硬盘引导过程,如何重建mbr|硬盘重建主引导记录(mbr)步骤
  16. html遇到英文单词整体换行,HTML在table中如何强制单词换行
  17. 概率论复习笔记3.0--假设检验
  18. Linux+C 开发基础
  19. PL/SQL 嵌套declare begin end
  20. 360 os3.0 android7.1,360OS 3.0系统

热门文章

  1. matlab arr3(5 end),matlab复习笔记.doc
  2. mybatis mysql方言_MyBatis 方言支持 - Mysql to 华为高斯数据库(gaussdb)
  3. r240显卡 linux,NV发布260.19.36正式版Linux驱动 270系列将至
  4. @CreatedDate@CreatedBy@LastModifiedBy@LastModifiedDate
  5. iOS中关于NSTimer使用知多少
  6. redis面试知识点和内存算法了解
  7. 页面 切换 中英文 怎么实现_【完美解决】AE CC2018表达式错误 ae cc2018如何进行中英文转换?...
  8. 分区字段必须包含在主键字段_24 个必须掌握的数据库面试问题!
  9. html创建php,php-从html创建图像
  10. brave浏览器_Brave for Mac(安全浏览器)