设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

[脚本问题]字符串中不能用控制码换行!

查看数: 2335 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-1-23 22:35

正文摘要:

我在脚本中这样写的: @introduce_window.set_text("欢迎来到我的第一个窗口!\n这是我第一个脚本。",0) 其中使用了\n控制码来换页 游戏里却是这样的。 我尝试着把字符串代入变量里用,类似如此: a="欢迎来到我 ...

回复

英顺的马甲 发表于 2015-1-24 15:27:09
如果只是单纯的文字的话可以考虑用each_line或者split("\n")来分别画每一行
风清翔 发表于 2015-1-24 13:12:34
喵呜喵5 发表于 2015-1-24 00:02
忽然发现我在贴吧回复过一遍……

有效了!又学到了一些东西,谢谢了!
RyanBern 发表于 2015-1-24 09:12:12
这玩意果然还是有点用处的:
https://rpg.blue/thread-374240-1-3.html

点评

xp的slice好像是按照字节进行切割的,如果不借助正则表达式还真是会出问题  发表于 2015-1-24 13:35
多谢~  发表于 2015-1-24 13:15
为什么xp字符串slice[0,1]出来的东西那么奇怪?  发表于 2015-1-24 13:15
喵呜喵5 发表于 2015-1-24 00:02:05
忽然发现我在贴吧回复过一遍……


一直用的是VA,没用过XP,因为不知道XP应该怎么处理所以按照VA描绘文字的方式重新修改了你的Window_introduce,你自己看看吧
  1. class Window_introduce < Window_Base
  2.   def initialize
  3.     super(80,80,640-160,480-160)
  4.     self.back_opacity = 160
  5.     self.opacity = 160
  6.     self.contents_opacity = 255
  7.     self.contents = Bitmap.new(width - 32, height - 32)
  8.   end  
  9.   def set_text(text, align = 0)
  10.     if text != @text or align != @align      
  11.       self.contents.clear
  12.       self.contents.font.color = normal_color      
  13.       # 获取描绘区域的属性
  14.       # x,y:当前文字描绘的位置
  15.       # width,height:描绘文字区域的宽度和高度
  16.       # new_x:每行文字的开始x坐标
  17.       pos = {
  18.         :x => 0,:y => 0,
  19.         :new_x => 0,:width => 500,:height => 32,
  20.       }
  21.       # 按照顺序依次描绘文字
  22.       text.scan(/./).each {|c| process_character(c,pos) }
  23.       @text,@align = text,align      
  24.     end
  25.     self.visible = true
  26.   end
  27.   def process_character(c,pos)   
  28.     case c
  29.     # 若文字为“/”则换行
  30.     when '/'
  31.       pos[:x] = pos[:new_x]
  32.       pos[:y] += pos[:height]
  33.     # 处理正常文字
  34.     else
  35.       # 获取文字大小
  36.       size = self.contents.text_size(c)
  37.       # 描绘文字
  38.       self.contents.draw_text(pos[:x],pos[:y],pos[:width],pos[:height], c)
  39.       # 计算下一个文字的描绘位置
  40.       pos[:x] += size.width
  41.     end
  42.   end
  43. end
复制代码

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 认可答案

查看全部评分

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-19 07:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表