GameMaker Studio 2 如何解决中文换行

分类栏目:gamemaker教程

185

首先是目的

很简单就是老子想要中文换行

然后就是谈谈烦心的事情

我工程通常或多或少的会考虑外置文档 这个时候

外置的内容无论是 中文还是英文 反正只要是外置就没法使用  的gms2新功能 “\x” 系列(在str中加入 可以达到 tab 换行等效果)
新功能无法使用 但是戈麦斯2 还是留了个接口 string_hash_to_newline (文本中加入#字换行)
draw_text_ext 写在能让一行字就这样宽 其他文本的内容往下挤 但是啊 但是啊 这玩意是给英文的 也就是 以空格等字符为分界线啊 别的不说 就讲空格 往外置文本中文里面打 除非你像我这样打字一般不用标点符号 

解决理念

拆开 往每一句话后面 加入个 “#” 

代码

str = "这是一段中文。这是一段中文。这是一段中文。这是一段"
var L = string_length(str)
L = L div 7 //一行7个字就这样打算了(真挤) 整出一下长度看一下需要分配几行字

//第一行字
i = 0
T[i] = string_copy(str,1+i*7,7) + "#"
 //中间
for (i=1; i<L; i+=1)
{
 T[i] = string_copy(str,1+i*7,7) + "#"
};

//收尾
 T[i] = string_copy(str,1+i*7,7)



//把他们都合并起来 
 var A = i+1
var str2 = ""
 for (i=0; i<A+1; i+=1)
 {
str2 +=T[i] 
 };

//转个码再赛回去
str =  string_hash_to_newline(str2)