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

Project1

 找回密码
 注册会员
搜索
查看: 1893|回复: 6

[已经解决] 怎么让text在某个窗口居中 【已解决】

[复制链接]

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
发表于 2017-9-7 16:04:15 手机端发表。 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 sq333333 于 2017-9-9 16:25 编辑

小白自己尝试修改了一下脚本,
不知道文字在窗口居中效果怎么写,
或者让窗口的宽度根据文字长度自动变化…
还有怎么让显示的窗口能变成系统对话框那种暗色背景的。
请大神多多指点!




Lv3.寻梦者

梦石
0
星屑
4793
在线时间
1347 小时
注册时间
2015-7-25
帖子
541

开拓者

发表于 2017-9-8 18:27:40 | 显示全部楼层
第一种情况:使用显示文字
1.打几个空格就行了
2.
RUBY 代码复制
  1. class Window_Message < Window_Base
  2.   def fiber_main
  3.     update_width
  4.     $game_message.visible = true
  5.     update_background
  6.     update_placement
  7.     loop do
  8.       process_all_text if $game_message.has_text?
  9.       process_input
  10.       $game_message.clear
  11.       @gold_window.close
  12.       Fiber.yield
  13.       break unless text_continue?
  14.     end
  15.     close_and_wait
  16.     $game_message.visible = false
  17.     @fiber = nil
  18.   end
  19.   def update_width
  20.     self.width = $game_message.texts[0].size * 30
  21.   end
  22. end

3.选择暗色背景

第二种情况:自己写窗口
1.
RUBY 代码复制
  1. text = "哈哈哈哈哈"
  2. draw_text(x, y, width, line_height, text,1)

也同样可以自己打空格
2.
RUBY 代码复制
  1. self.width = text.size * 30

3.
RUBY 代码复制
  1. def create_back_bitmap
  2.     @back_bitmap = Bitmap.new(width, height)
  3.     rect1 = Rect.new(0, 0, width, 12)
  4.     rect2 = Rect.new(0, 12, width, height - 24)
  5.     rect3 = Rect.new(0, height - 12, width, 12)
  6.     @back_bitmap.gradient_fill_rect(rect1, back_color2, back_color1, true)
  7.     @back_bitmap.fill_rect(rect2, back_color1)
  8.     @back_bitmap.gradient_fill_rect(rect3, back_color1, back_color2, true)
  9.   end
  10.   def back_color1
  11.     Color.new(0, 0, 0, 160)
  12.   end
  13.   def back_color2
  14.     Color.new(0, 0, 0, 0)
  15.   end
  16.   def create_back_sprite
  17.     @back_sprite = Sprite.new
  18.     @back_sprite.bitmap = @back_bitmap
  19.     @back_sprite.visible = true
  20.     @back_sprite.z = z - 1
  21.   end
  22.   def dispose
  23.     super
  24.     @back_bitmap.dispose
  25.     @back_sprite.dispose
  26.   end


如果是第二种情况(自己写窗口),上面已经说了大概的思路
这里还是举个例子:
RUBY 代码复制
  1. class A < Window_Base
  2.   def initialize
  3.     super(0,0,544,120)
  4.     create_back_bitmap
  5.     create_back_sprite
  6.     self.opacity = 0
  7.     refresh
  8.   end
  9.   def refresh
  10.     text = "哈哈哈哈哈"
  11.     self.width = text.size * 30
  12.     draw_text(x, y, width, line_height, text,1)
  13.   end
  14.   def create_back_bitmap
  15.     @back_bitmap = Bitmap.new(width, height)
  16.     rect1 = Rect.new(0, 0, width, 12)
  17.     rect2 = Rect.new(0, 12, width, height - 24)
  18.     rect3 = Rect.new(0, height - 12, width, 12)
  19.     @back_bitmap.gradient_fill_rect(rect1, back_color2, back_color1, true)
  20.     @back_bitmap.fill_rect(rect2, back_color1)
  21.     @back_bitmap.gradient_fill_rect(rect3, back_color1, back_color2, true)
  22.   end
  23.   def back_color1
  24.     Color.new(0, 0, 0, 160)
  25.   end
  26.   def back_color2
  27.     Color.new(0, 0, 0, 0)
  28.   end
  29.   def create_back_sprite
  30.     @back_sprite = Sprite.new
  31.     @back_sprite.bitmap = @back_bitmap
  32.     @back_sprite.visible = true
  33.     @back_sprite.z = z - 1
  34.   end
  35.   def dispose
  36.     super
  37.     @back_bitmap.dispose
  38.     @back_sprite.dispose
  39.   end
  40. end

评分

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

查看全部评分

目前的坑 幽灵契约外传:歌莉娅
回归持续更新中~ 进度 v0.21/v1.00
笨肉包开始学像素画啦!努力训练中XD
啊~今天也是填坑的一天呢!

看!是肉包!
只能看!不能吃!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
 楼主| 发表于 2017-9-8 18:57:05 手机端发表。 | 显示全部楼层
魔法丶小肉包 发表于 2017-9-8 18:27
第一种情况:使用显示文字
1.打几个空格就行了
2.

谢谢肉包大神,一直在帮我们小白。 真舍不得6R和你们这些大神呀。不知道将来论坛会搬去哪里……

点评

大神不敢当,我只是个萌新...或许这是最后一次帮忙了吧...=w=...除非以后有新论坛开放...  发表于 2017-9-8 19:33
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
 楼主| 发表于 2017-9-8 21:31:23 手机端发表。 | 显示全部楼层
本帖最后由 sq333333 于 2017-9-8 21:33 编辑

这个图片是我自己修改的显示技能名,因为技能名字有长有短,所以有时无法正常显示,我还是不会举一反三(完全没有基础…)。所以…还请大神在这个基础上加以修改,使窗口可以适应技能名字长短并且始终居中显示,或者直接改成暗色背景居中显示技能名呢?(有点得寸进尺的感觉……)
IMG_20170908_212445.jpg

点评

嗯....不好意思才看到,话说你这个图片太模糊了吧?=w=  发表于 2017-9-9 09:59
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
878
在线时间
576 小时
注册时间
2010-6-26
帖子
793
 楼主| 发表于 2017-9-9 16:25:10 | 显示全部楼层
魔法丶小肉包 发表于 2017-9-8 18:27
第一种情况:使用显示文字
1.打几个空格就行了
2.

谢谢肉包,已经解决啦!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-4-19 07:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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