• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lua操作中文字符串之截取和长度竖排显示

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

前言

  在游戏中,我们经常会遇到汉字的多行显示,比如名字竖行显示等。如下图:

为了实现上面的效果,lua实现分行是通过  \n  实现的,所以我们需要取出汉字,然后插入 \n 实现分行效果。还有一种就是设置Label的的实际大小,也可以实现分行效果。

操作中文字符串,获取字符串长度

    local str = "哈哈哈哈"
    local _,strTest =  string.gsub(str,'[\128-\255][\128-\255]',' ')
    local _, count = string.gsub(str, "[^\128-\193]", "")
  
    print(count)
    print(strTest)

 

中文字符串中单个汉字取出,放到tab中

简单实现一个功能函数,将字符串中的单个汉字取出,放到一个数组中,然后再进行其他操作。

实现函数为:

--功能将汉字插入\n分行显示
--可扩展,比如一行显示几个字等
--这里是一个测试n每行显示一个
function branchStr(str)
    local sNum = num or 1
    local tab = {}
    for uchar in string.gfind(str, "[%z\1-\127\194-\244][\128-\191]*") do 
        tab[#tab+1] = uchar
    end
    local resultStr = ""
    for i=1,#tab do
        resultStr = resultStr..tab[i].."\n"
    end
    return resultStr
end

调用上面的函数,我们可以将得到插入\n 的字符串,然后在文本框中使用就可以了。这里的函数可以扩展,比如一行显示多少个汉字等。

 

quick lua 多行显示第二种方式控制文本的大小


--------------------------------
-- 使用 TTF 字体创建文字显示对象,并返回 Label 对象。
-- @function [parent=#display] newTTFLabel
-- @param table params 参数表格对象
-- @return Label#Label ret (return value: cc.Label) Label对象


--[[--


使用 TTF 字体创建文字显示对象,并返回 Label 对象。


可用参数:


- text: 要显示的文本
- font: 字体名,如果是非系统自带的 TTF 字体,那么指定为字体文件名
- size: 文字尺寸,因为是 TTF 字体,所以可以任意指定尺寸
- color: 文字颜色(可选),用 cc.c3b() 指定,默认为白色
- align: 文字的水平对齐方式(可选)
- valign: 文字的垂直对齐方式(可选),仅在指定了 dimensions 参数时有效
- dimensions: 文字显示对象的尺寸(可选),使用 cc.size() 指定
- x, y: 坐标(可选)


align 和 valign 参数可用的值:


- cc.TEXT_ALIGNMENT_LEFT 左对齐
- cc.TEXT_ALIGNMENT_CENTER 水平居中对齐
- cc.TEXT_ALIGNMENT_RIGHT 右对齐
- cc.VERTICAL_TEXT_ALIGNMENT_TOP 垂直顶部对齐
- cc.VERTICAL_TEXT_ALIGNMENT_CENTER 垂直居中对齐
- cc.VERTICAL_TEXT_ALIGNMENT_BOTTOM 垂直底部对齐


~~~ lua

 
dimensions 参数就是设置显示的大小

    --描述
    local desLabel = cc.ui.UILabel.new({
        text = "哈喽哈鲁哈喽哈鲁哈喽哈鲁哈喽哈鲁哈喽哈鲁哈喽哈鲁哈喽哈鲁哈喽哈鲁哈喽哈鲁哈喽哈鲁哈喽哈鲁哈喽哈鲁",--level
        align = cc.ui.TEXT_ALIGN_CENTER,
        color = cc.c3b(255, 255, 220),
        size = 20,
        dimensions = cc.size(bg:getContentSize().width-10,60)
        })
    :align(display.CENTER,bg:getContentSize().width/2,60)
    :addTo(bg)
dimensions :参数

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
15分钟学会Lua发布时间:2022-07-22
下一篇:
lua源码分析:lua的数据类型发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap