|
这个说起来就比较麻烦,不复杂但是比较繁琐。 首先一段文字 text 需要弄成数组形式: @text_array = text.split("") 另外是间隔时间描绘,需要一个变量记录当前描绘到哪个位置了:@text_pos = {:x=>0,:y=>0} 开始描绘文字时把这俩都初始化 def 描绘文字(text) @text_array = text.split("") @text_pos = {:x=>0,:y=>0} end 然后写一个描绘单个文字的函数 def 描绘单个文字 tx = @text_array.shift #获取并删除文字数组第一个字。 cw = contents.text_size(tx).width #获取描绘这个字需要的宽度。 if @text_pos[:x] + cw > xxx #如果描绘的坐标X加上宽度超过 xxx ,就换行。 @text_pos[:x] = 0 @text_pos[:y] += 32 #假如行距是 32 。 end draw_text(@text_pos[:x], @text_pos[:y], cw, 32, tx) #描绘这个文字。 @text_pos[:x] += cw #宽度累加。 end 最后在 update 里面执行刷新就行了。 def update ......... 描绘单个文字 if @text_array && @text_array.size > 0 && Graphics.frame_count % Helpset::Speed == 0 end |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2025-6-29 06:22
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.