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

Project1

 找回密码
 注册会员
搜索
查看: 2318|回复: 3
打印 上一主题 下一主题

[已经解决] 怎么让对话框文字居中?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
22 小时
注册时间
2013-10-18
帖子
5
跳转到指定楼层
1
发表于 2013-11-10 17:33:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我想让对话框里的文字横向居中,之前一直是通过按空格来调整的,可是这么做又浪费时间又把握不好距离,想问问可以通过脚本或者其他方法实现么??

Lv2.观梦者

梦石
0
星屑
362
在线时间
1292 小时
注册时间
2013-1-12
帖子
3590

贵宾

2
发表于 2013-11-12 08:10:28 | 只看该作者
某整合系統裡有
然後問一下  是要全程居中 還是1~2句居中?

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
22 小时
注册时间
2013-10-18
帖子
5
3
 楼主| 发表于 2013-11-12 17:47:00 | 只看该作者
76213585 发表于 2013-11-12 08:10
某整合系統裡有
然後問一下  是要全程居中 還是1~2句居中?

1-2句居中就好,空格总是搞不好位置很痛苦啊
PS:能发下那个整合的网址么?

点评

現在找不到 不過是在RM技術发布區....  发表于 2013-11-13 07:27
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22958
在线时间
8638 小时
注册时间
2011-12-31
帖子
3367
4
发表于 2013-11-16 22:12:20 | 只看该作者
本帖最后由 tseyik 于 2013-11-16 22:19 编辑

http://www20.atwiki.jp/type74rx-t/pages/183.html

事件中:脚本。
rxmsg_ctr
文章前設定。
rxmsg
回復到通常表示。
註1:一部分制御文字不能使用
註2:若文中有不同大小的文字,會令置中有偏差
RUBY 代码复制
  1. #
  2. #    文章の自動センタリング処理(RGSS3)
  3. #  (C)2011 TYPE74RX-T
  4. #
  5.  
  6. module Kernel
  7.   #--------------------------------------------------------------------------
  8.   # ★ センタリングフラグ
  9.   #   (顔グラ設定がなく、イベントでセンタリング指定がされているか)
  10.   #--------------------------------------------------------------------------
  11.   def rx3_message_centering?
  12.     $game_message.face_name.empty? and $game_temp.rx_message_centering
  13.   end
  14. end
  15.  
  16. #==============================================================================
  17. # ■ Game_Temp
  18. #------------------------------------------------------------------------------
  19. #  セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン
  20. # スタンスは $game_temp で参照されます。
  21. #==============================================================================
  22.  
  23. class Game_Temp
  24.   #--------------------------------------------------------------------------
  25.   # ● 公開インスタンス変数
  26.   #--------------------------------------------------------------------------
  27.   attr_accessor :rx_message_centering     # 文章のセンタリング表示フラグ
  28.   #--------------------------------------------------------------------------
  29.   # ● オブジェクト初期化
  30.   #--------------------------------------------------------------------------
  31.   alias rx3_111216_initialize initialize
  32.   def initialize
  33.     rx3_111216_initialize # メソッド呼び戻し
  34.     @rx_message_centering = false
  35.   end
  36. end
  37.  
  38. #==============================================================================
  39. # ■ Game_Interpreter
  40. #------------------------------------------------------------------------------
  41. #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
  42. # Game_Troop クラス、Game_Event クラスの内部で使用されます。
  43. #==============================================================================
  44.  
  45. class Game_Interpreter
  46.   #--------------------------------------------------------------------------
  47.   # ★ センタリングフラグをオン
  48.   #--------------------------------------------------------------------------
  49.   def rxmsg_ctr
  50.     $game_temp.rx_message_centering = true
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ★ センタリングフラグをオフ
  54.   #--------------------------------------------------------------------------
  55.   def rxmsg
  56.     $game_temp.rx_message_centering = false
  57.   end
  58. end
  59.  
  60. #==============================================================================
  61. # ■ Window_Base
  62. #------------------------------------------------------------------------------
  63. #  ゲーム中の全てのウィンドウのスーパークラスです。
  64. #==============================================================================
  65.  
  66. class Window_Base < Window
  67.   #--------------------------------------------------------------------------
  68.   # ★ 各行ごとの X 座標を設定(センタリング用)
  69.   #--------------------------------------------------------------------------
  70.   def rx_set_text_xpos(text)
  71.     # メッセージを配列化して rx_textspl に入れる
  72.     rx_texts = text.sub("\n", " ")
  73.     rx_textspl = rx_texts.split(/\s+/)
  74.     @rx_text_count = 0
  75.     @rx_txt_widths = []
  76.     # 各行ごとの最終的な X 座標を配列に入れる
  77.     (0...rx_textspl.size).each do |i|
  78.       xps = (Graphics.width - 32 - contents.text_size(rx_textspl[i]).width) / 2
  79.       @rx_txt_widths.push(xps)
  80.     end
  81.   end
  82.   #--------------------------------------------------------------------------
  83.   # ● 改行文字の処理
  84.   #--------------------------------------------------------------------------
  85.   alias rx3_111216_process_new_line process_new_line
  86.   def process_new_line(text, pos)
  87.     # ★ センタリングフラグが立っていたら表示行数をカウント
  88.     if rx3_message_centering?
  89.       @rx_text_count += 1
  90.       return if @rx_text_count == @rx_txt_widths.size
  91.     end
  92.     rx3_111216_process_new_line(text, pos) # メソッド呼び戻し
  93.     # ★ 改行後の X 座標をセンタリング
  94.     pos[:x] = @rx_txt_widths[@rx_text_count] if rx3_message_centering?
  95.   end
  96. end
  97.  
  98. #==============================================================================
  99. # ■ Window_Message
  100. #------------------------------------------------------------------------------
  101. #  文章表示に使うメッセージウィンドウです。
  102. #==============================================================================
  103.  
  104. class Window_Message < Window_Base
  105.   #--------------------------------------------------------------------------
  106.   # ★ 各行ごとの X 座標を設定(センタリング用)
  107.   #--------------------------------------------------------------------------
  108.   def rx_set_text_xpos(text)
  109.     super(text)
  110.   end
  111.   #--------------------------------------------------------------------------
  112.   # ● 全テキストの処理
  113.   #--------------------------------------------------------------------------
  114.   alias rx3_111216_process_all_text process_all_text
  115.   def process_all_text
  116.     # ★ センタリングフラグが立っていたら各行ごとの X 座標を設定
  117.     rx_set_text_xpos(convert_escape_characters($game_message.all_text)) if rx3_message_centering?
  118.     rx3_111216_process_all_text # メソッド呼び戻し
  119.   end
  120.   #--------------------------------------------------------------------------
  121.   # ● 改行位置の取得
  122.   #--------------------------------------------------------------------------
  123.   alias rx3_111216_new_line_x new_line_x
  124.   def new_line_x
  125.     # センタリングフラグが立っていたらセンタリング
  126.     return @rx_txt_widths[@rx_text_count] if rx3_message_centering?
  127.     rx3_111216_new_line_x # メソッド呼び戻し
  128.   end
  129. end

点评

厉害,经常看到前辈的好脚本。不过,真心期待6R能出繁简体切换功能啊。。。  发表于 2013-11-22 20:43

评分

参与人数 2星屑 +66 +1 收起 理由
哇哇哇啊叭叭 + 1 塞糖
熊喵酱 + 66 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 07:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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