赞 | 287 |
VIP | 11 |
好人卡 | 74 |
积分 | 227 |
经验 | 281171 |
最后登录 | 2024-11-30 |
在线时间 | 9422 小时 |
Lv5.捕梦者 (暗夜天使) 只有笨蛋才会看到
- 梦石
- 1
- 星屑
- 21706
- 在线时间
- 9422 小时
- 注册时间
- 2012-6-19
- 帖子
- 7119
|
忽然发现我在贴吧回复过一遍……
一直用的是VA,没用过XP,因为不知道XP应该怎么处理所以按照VA描绘文字的方式重新修改了你的Window_introduce,你自己看看吧- class Window_introduce < Window_Base
- def initialize
- super(80,80,640-160,480-160)
- self.back_opacity = 160
- self.opacity = 160
- self.contents_opacity = 255
- self.contents = Bitmap.new(width - 32, height - 32)
- end
- def set_text(text, align = 0)
- if text != @text or align != @align
- self.contents.clear
- self.contents.font.color = normal_color
- # 获取描绘区域的属性
- # x,y:当前文字描绘的位置
- # width,height:描绘文字区域的宽度和高度
- # new_x:每行文字的开始x坐标
- pos = {
- :x => 0,:y => 0,
- :new_x => 0,:width => 500,:height => 32,
- }
- # 按照顺序依次描绘文字
- text.scan(/./).each {|c| process_character(c,pos) }
- @text,@align = text,align
- end
- self.visible = true
- end
- def process_character(c,pos)
- case c
- # 若文字为“/”则换行
- when '/'
- pos[:x] = pos[:new_x]
- pos[:y] += pos[:height]
- # 处理正常文字
- else
- # 获取文字大小
- size = self.contents.text_size(c)
- # 描绘文字
- self.contents.draw_text(pos[:x],pos[:y],pos[:width],pos[:height], c)
- # 计算下一个文字的描绘位置
- pos[:x] += size.width
- end
- end
- end
复制代码 |
评分
-
查看全部评分
|