快速上网看了一下,没找到相关功能,于是自己写了一个,想着就放这里,万一别人也想用呢。

这个函数你可以随意使用和修改,无需注明出处。

由于Reddit搞乱了格式,所以做了些编辑。

///@param xx 绘制字符串的x坐标。
///@param yy 绘制字符串的y坐标。
///@param str 要绘制的字符串。
///@param width 换行前的最大宽度(像素)。
///@param charCount 要显示的字符数。设为-1则显示所有字符。
///@param colour 绘制文本的颜色。设为false则使用当前绘制颜色。默认值为false。
///@param alpha 文本的透明度。默认值为1。
///@description 该函数可绘制自动换行至指定像素宽度的文本,并允许控制显示文本的字符数。返回最终的字符串。

function typewriter_text( xx, yy, str, width, charCount, colour = false, alpha = 1 ) {
  if !colour { colour = draw_get_colour() }
  var _words = string_split( str, " " );
  var _lines = "";
  for( var i = 0; i < array_length( _words ); i++ )
  {
    _words[i] += " ";
    if string_width( _lines + _words[i] ) < width
    {
      _lines += _words[i];
    } else {
      _lines += "\n";
      _lines += _words[i];
    }
  }
  if charCount == -1 { charCount = string_length( _lines ) - 1; };
  var _text = string_copy( _lines, 1, clamp( charCount, 1, string_length( _lines ) ) );
  draw_text_colour( xx, yy, _text, colour, colour, colour, colour, alpha );
  return _lines
}