cocos2dx 文本换行

本文探讨了Cocos2d-x中使用Text组件遇到的文本换行问题,包括不同平台下的表现差异、UTF-8编码下换行处理及特定字符截断现象,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

m_context = Text::create(pContent,"",fontsize);
m_context->setAnchorPoint(Vec2(0,1.0));


 //下面两句是重点
m_context->setTextAreaSize(Size(400, 0)); //宽度不限制
m_context->ignoreContentAdaptWithSize(false);
addChild(m_context);

 

首先编码问题,在VS中保存的文本之前是简体中文,改为utf-8(文件-高级保存选项)

但是如果输入的英文一个单词超过了一行的最大长度,或输入的一串没有空格,这个是不会换行,在PC端是不会换行,中文也不会换行,但是在Andriod会换行(这个高度就要设置了,但是有很多情况不知道高度的大小,如果显示固定的内容还好)。

或者是一个单词的宽度大于要显示的宽度,那这咯单词的后面会被截断,像这样,这就悲剧了

text->setText("abcdefghijklmnopq rst uvwx yz");

 

还有一种情况就是如果子啊字符串中有换行符\n,情况又会不一样。

text->setText("abcdefghi\njklmnopq rst uvwx yz");

但是在这里要注意,如果直接在cocosstdio里面的文本里修改加上\n是没有用的,为什么呢,来看看.json文件里面的text保存的文本是什么

 "text": "abcdefghi\\njklmnopq rst uvwx yz",  这里变成了双斜杠

 

之前做输入框的时候需要换行,对于utf-8,堆输入的东西进行判断确定是否换行,参考

http://blog.sina.com.cn/s/blog_7c4f3b160101dv4p.html

http://www.cnblogs.com/chenwenbiao/archive/2011/08/11/2134503.html

 

转载于:https://www.cnblogs.com/pureyes-cyl/p/7241190.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值