quick-cocos2d-x游戏开发【4】——加入文本
文本的加入在quick中被封装在ui类中,它能够创建EditBox。菜单以及文本,文本总得来说能够创建TTF和BMFont两种。
api对于它的说明非常具体。ui.newBMFontLabel(params),參数中
- text: 要显示的文本
- font: 字体文件名称
- align: 文字的水平对齐方式(可选)
- x, y: 坐标(可选)
所以我们创建一个文本能够使用这种代码,
function MyScene:ctor()
local labelBMFont = ui.newBMFontLabel({
text = "Hello Cocos2dx",
font = "futura-48.fnt",
align = ui.TEXT_ALIGN_CENTER,
x = display.cx,
y = display.cy
})
self:addChild(labelBMFont)
end
效果例如以下,
align參数相当于锚点的作用。默认quick中创建出来的都是靠左,所以常常会用到align = ui.TEXT_ALIGN_CENTER。
注意參数给的名称不能够改动,否则quick认不出參数。就会报错。
既然前面说了quick是对cocos2d-x 原生lua的再封装,咱们就再看看这个newBMFontLabel是怎样实现的。贴一下ui中的代码。
function ui.newBMFontLabel(params)
assert(type(params) == "table",
"[framework.ui] newBMFontLabel() invalid params") local text = tostring(params.text)
local font = params.font
local textAlign = params.align or ui.TEXT_ALIGN_CENTER
local x, y = params.x, params.y
assert(font ~= nil, "ui.newBMFontLabel() - not set font") local label = CCLabelBMFont:create(text, font, kCCLabelAutomaticWidth, textAlign)
if not label then return end if type(x) == "number" and type(y) == "number" then
label:setPosition(x, y)
end if textAlign == ui.TEXT_ALIGN_LEFT then
label:align(display.LEFT_CENTER)
elseif textAlign == ui.TEXT_ALIGN_RIGHT then
label:align(display.RIGHT_CENTER)
else
label:align(display.CENTER)
end return label
end
能够看到还是使用了cocos2dx创建BMFont的方法——CCLabelBMFont:create(text, font, kCCLabelAutomaticWidth, textAlign)。所以假设你认为quick哪个參数看得不爽。你把它改动了,那么创建的时候就能够按自己喜欢的字段来了,当然这是不建议的。
还有一种是TTF。ui.newTTFLabel(params),它可用的參数许多。
- text: 要显示的文本
- font: 字体名,假设是非系统自带的 TTF 字体,那么指定为字体文件名称
- size: 文字尺寸,由于是 TTF 字体。所以能够随意指定尺寸
- color: 文字颜色(可选),用 ccc3() 指定,默觉得白色
- align: 文字的水平对齐方式(可选)
- valign: 文字的垂直对齐方式(可选),仅在指定了 dimensions 參数时有效
- dimensions: 文字显示对象的尺寸(可选),使用 CCSize() 指定
- x, y: 坐标(可选)
align 和 valign 參数可用的值:
- ui.TEXT_ALIGN_LEFT 左对齐
- ui.TEXT_ALIGN_CENTER 水平居中对齐
- ui.TEXT_ALIGN_RIGHT 右对齐
- ui.TEXT_VALIGN_TOP 垂直顶部对齐
- ui.TEXT_VALIGN_CENTER 垂直居中对齐
- ui.TEXT_VALIGN_BOTTOM 垂直底部对齐
我们也简单写个
function MyScene:ctor()
local labelTTF = ui.newTTFLabel({
text = "Hello Cocos2dx",
size = 30,
color = ccc3(255, 255, 0),
align = ui.TEXT_ALIGN_CENTER,
x = display.cx,
y = display.cy })
self:addChild(labelTTF) end
效果例如以下,
关于quick对于TTF是怎样实现的源代码我就不贴出来了,大家能够自己翻出来看看。
此外。在api中还提供了两种TTF格式的字体创建,
ui.newTTFLabelWithShadow(params)
ui.newTTFLabelWithOutline(params)
这两个各自是带有阴影和描边參数的TTF字体,cocos2dx中一样提供这个功能,所以在quick里简单知道一下就ok。写个效果出来看看
local labelTTF = ui.newTTFLabelWithOutline({
text = "Hello Cocos2dx",
size = 50,
color = ccc3(255, 0, 0),
align = ui.TEXT_ALIGN_CENTER,
x = display.cx,
y = display.cy,
outlineColor = ccc3(255, 255, 0)
})
self:addChild(labelTTF)
效果例如以下,
label基本就是这样了。原生的另一个Atlas,在游戏中做数字标签还是非经常常使用的~
quick-cocos2d-x游戏开发【4】——加入文本的更多相关文章
- iOS cocos2d 2游戏开发实战(第3版)书评
2013是游戏爆发的一年,手游用户也是飞速暴增.虽然自己不做游戏,但也是时刻了解手机应用开发的新动向.看到CSDN的"写书评得技术图书赢下载分"活动,就申请了一本<iOS c ...
- (转载)如何学好iphone游戏开发
转自:http://www.cnblogs.com/zilongshanren/archive/2011/09/19/2181558.html 自从发布<如何学习iphone游戏开发>到 ...
- cocos2d 游戏开发实战
文章转自:http://uliweb.clkg.org/tutorial/read/40 6 cocos2d 游戏开发实战 6.1 创建cocos2d项目 6.2 cocos2d v3 & ...
- 【Cocos2D研究院之游戏开发】
http://www.xuanyusong.com/archives/category/ios/cocos2d_game 分类目录归档:[Cocos2D研究院之游戏开发] 201211-19 Co ...
- Cocos2d-x 3.x版2048游戏开发
Cocos2d-x 3.x版2048游戏开发 本篇博客给大家介绍怎样高速开发2048这样一款休闲游戏,理解整个2048游戏的开发流程.从本篇博客你将能够学习到下面内容: 这里注明一下,本教程来自极客学 ...
- 2、Cocos2dx 3.0游戏开发找小三之引擎简单介绍
尊重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27094663 引擎简单介绍 Cocos2d-x 的 ...
- 今天我看了一个H5游戏EUI的例子,我都快分不清我到底是在用什么语言编译了代码了,作为刚刚学习H5游戏开发的菜鸟只能默默的收集知识
今天看了一个EUI的demo,也是接触H5游戏开发的第五天了,我想看看我能不能做点什么出来,哎,自己写果然还是有问题的.在看EUI哪一个demo的时候就遇见了一些摇摆不定的问题,我觉得提出来 1.to ...
- Egret白鹭H5小游戏开发入门(三)
前言: 在上一篇文章中着重介绍了H5小游戏开发的起步阶段,如Wing面板的使用,素材的处理,类的说明等等,那么今天主要是涉及到场景的创建,loading的修改等等的代码编写. 对于这一节,我在讲解的过 ...
- Html5 Egret游戏开发 成语大挑战(六)游戏界面构建和设计
本篇将主要讲解游戏界面的构建和设计,会应用到egret.eui的自定义组件,可以很直观的构建一个游戏整体,这里我们仍然只需要使用EgretWing就可以达到目的,本篇可能是篇幅最少的一个,但是涉及自定 ...
- HTML5游戏开发进阶指南(亚马逊5星畅销书,教你用HTML5和JavaScript构建游戏!)
HTML5游戏开发进阶指南(亚马逊星畅销书,教你用HTML5和JavaScript构建游戏!) [印]香卡(Shankar,A.R.)著 谢光磊译 ISBN 978-7-121-21226-0 201 ...
随机推荐
- Boost的安装与使用(整整83篇)
http://www.cnblogs.com/lidabo/category/542245.html
- 有没有安全的工作?(99条评论)——结论是没有一劳永逸的工作,要终身学习,IT业刚出道和老手还是有区别的(同样对于新技术,薪资可能是个问题)
作者: 阮一峰 日期: 2015年12月15日 如果你经常使用互联网,可能知道有一种东西叫做Flash. 它是一种软件,用来制作网页游戏.动画,以及视频播放器.只要观看网络视频,基本都会用到它. 七八 ...
- Mysql 5.1升级为mysql 5.6遇到的问题及解决方式
yum是不可行的.因为yum源没更新,我已经使用了163网易的源,但是还是不行.最新版仍然不是5.6.没办法,mysql分区是5.5之后的功能,要使用分区功能,就必须升级.. 去官网下载地址:http ...
- Google Ads Encryption Key
aes | floyd's Google Ads Encryption Key
- 谈谈Ext JS的组件——布局的用法续二
绝对布局(Ext.layout.container.Absolute) 绝对布局让我回忆到了使用Foxpro开发的时候,哪时候的界面布局就是这样.通过设置控件的左上角坐标(x.y)和宽度来进行的,由于 ...
- Codeforces 396B On Sum of Fractions 数论
题目链接:Codeforces 396B On Sum of Fractions 题解来自:http://blog.csdn.net/keshuai19940722/article/details/2 ...
- Lucene.Net 2.3.1开发介绍 —— 三、索引(六)
原文:Lucene.Net 2.3.1开发介绍 -- 三.索引(六) 2.2 Field的Boost 如果说Document的Boost是一条线,那么Field的Boost则是一个点.怎么理解这个点呢 ...
- 14.2.4 InnoDB Undo Logs
14.2.4 InnoDB Undo Logs : 一个Undo log (或者成为回滚段) 是一个存储区域 持有被活动事务修改的数据的copy. 如果另外的事务需要看原始的数据(作为一致性读操作的一 ...
- Windows 8 和 Windows 8.1 中对插件和 ActiveX 的支持
此文章将介绍页面在 Windows 8 适用于桌面版的 Internet Explorer 中与在新 Windows UI 的 Internet Explorer 中的不同表现. Windows 8 ...
- HDU--杭电--4502--吉哥系列故事——临时工计划--背包--01背包
吉哥系列故事——临时工计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) To ...