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


    前言

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

    为了实现上面的效果,lua实现分行是通过    实现的,所以我们需要取出汉字,然后插入 实现分行效果。还有一种就是设置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每行显示一个
    function branchStr(str)
        local sNum = num or 1
        local tab = {}
        for uchar in string.gfind(str, "[%z1-127194-244][128-191]*") do 
            tab[#tab+1] = uchar
        end
        local resultStr = ""
        for i=1,#tab do
            resultStr = resultStr..tab[i].."
    "
        end
        return resultStr
    end

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

    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 :参数
  • 相关阅读:
    各种快递查询Api接口(快递鸟)
    验证码识别,发票编号识别
    ugui自制摇杆。
    个人网站
    unity访问php
    其实我是学文学的
    unity发布ios游戏总结
    Unity连接本地数据库sqlite
    gcc中gdb调试工具的使用
    windows系统下调试uCOS-II
  • 原文地址:https://www.cnblogs.com/zhangfeitao/p/4618921.html
Copyright © 2020-2023  润新知