Project1
标题:
关于对话居中
[打印本页]
作者:
快乐之源
时间:
2012-8-23 07:12
标题:
关于对话居中
有一段对话,需要文字居中,请问该如何设置(不要说用空格。。)
QQ截图20120823071202.png
(261.7 KB, 下载次数: 19)
下载附件
保存到相册
2012-8-23 07:12 上传
dsu_plus_rewardpost_czw
作者:
fxwd
时间:
2012-8-23 17:44
本帖最后由 fxwd 于 2012-8-23 17:49 编辑
sorry,没看见,我再想想
————————————————
刚才测试了一下空格是可以的,不知道为什么楼主不用,如果不用的话,可以改脚本,不算太难,另外就只能用图片显示对话了
作者:
zldarwin
时间:
2012-8-24 16:40
有时候是得找一些折中的方法,挺无奈的。
实在找不到方法了,先使用最直接、简单的方式,也许会是最有效的。
之前我也找半天,坐等完美解决方案。
作者:
吾不知
时间:
2012-8-24 17:02
如下:文字自动对齐中心!
#
# 文章の自動センタリング処理(RGSS3)
# (C)2011 TYPE74RX-T
#
#イベント:スクリプトに記入します。
#rxmsg_ctr
#センタリングさせたい文章の前に設定してください。
#rxmsg
#通常表示に戻します。
module Kernel
#--------------------------------------------------------------------------
# ★ センタリングフラグ
# (顔グラ設定がなく、イベントでセンタリング指定がされているか)
#--------------------------------------------------------------------------
def rx3_message_centering?
$game_message.face_name.empty? and $game_temp.rx_message_centering
end
end
#==============================================================================
# ■ Game_Temp
#------------------------------------------------------------------------------
# セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン
# スタンスは $game_temp で参照されます。
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :rx_message_centering # 文章のセンタリング表示フラグ
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias rx3_111216_initialize initialize
def initialize
rx3_111216_initialize # メソッド呼び戻し
@rx_message_centering = false
end
end
#==============================================================================
# ■ Game_Interpreter
#------------------------------------------------------------------------------
# イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、
# Game_Troop クラス、Game_Event クラスの内部で使用されます。
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ★ センタリングフラグをオン
#--------------------------------------------------------------------------
def rxmsg_ctr
$game_temp.rx_message_centering = true
end
#--------------------------------------------------------------------------
# ★ センタリングフラグをオフ
#--------------------------------------------------------------------------
def rxmsg
$game_temp.rx_message_centering = false
end
end
#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
# ゲーム中の全てのウィンドウのスーパークラスです。
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# ★ 各行ごとの X 座標を設定(センタリング用)
#--------------------------------------------------------------------------
def rx_set_text_xpos(text)
# メッセージを配列化して rx_textspl に入れる
rx_texts = text.sub("\n", " ")
rx_textspl = rx_texts.split(/\s+/)
@rx_text_count = 0
@rx_txt_widths = []
# 各行ごとの最終的な X 座標を配列に入れる
(0...rx_textspl.size).each do |i|
xps = (Graphics.width - 32 - contents.text_size(rx_textspl[i]).width) / 2
@rx_txt_widths.push(xps)
end
end
#--------------------------------------------------------------------------
# ● 改行文字の処理
#--------------------------------------------------------------------------
alias rx3_111216_process_new_line process_new_line
def process_new_line(text, pos)
# ★ センタリングフラグが立っていたら表示行数をカウント
if rx3_message_centering?
@rx_text_count += 1
return if @rx_text_count == @rx_txt_widths.size
end
rx3_111216_process_new_line(text, pos) # メソッド呼び戻し
# ★ 改行後の X 座標をセンタリング
pos[:x] = @rx_txt_widths[@rx_text_count] if rx3_message_centering?
end
end
#==============================================================================
# ■ Window_Message
#------------------------------------------------------------------------------
# 文章表示に使うメッセージウィンドウです。
#==============================================================================
class Window_Message < Window_Base
#--------------------------------------------------------------------------
# ★ 各行ごとの X 座標を設定(センタリング用)
#--------------------------------------------------------------------------
def rx_set_text_xpos(text)
super(text)
end
#--------------------------------------------------------------------------
# ● 全テキストの処理
#--------------------------------------------------------------------------
alias rx3_111216_process_all_text process_all_text
def process_all_text
# ★ センタリングフラグが立っていたら各行ごとの X 座標を設定
rx_set_text_xpos(convert_escape_characters($game_message.all_text)) if rx3_message_centering?
rx3_111216_process_all_text # メソッド呼び戻し
end
#--------------------------------------------------------------------------
# ● 改行位置の取得
#--------------------------------------------------------------------------
alias rx3_111216_new_line_x new_line_x
def new_line_x
# センタリングフラグが立っていたらセンタリング
return @rx_txt_widths[@rx_text_count] if rx3_message_centering?
rx3_111216_new_line_x # メソッド呼び戻し
end
end
复制代码
作者:
吾不知
时间:
2012-8-24 18:35
脚本 rxmsg_ctr
开始居中显示
脚本 rxmsg
恢复原始的显示
作者:
Mic_洛洛
时间:
2012-8-24 22:12
话说如果只是几句话,用得着动脚本么= =||
打几个空格又不会死。。。
用图片显示又不会死。。。
同学,简单常用的方法才是好方法。。。何必舍易取难呢?
不会脚本的外插那么多脚本不是件好事,没准哪天会毁了你的工程的说= =||
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1