赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 2861 |
最后登录 | 2017-6-18 |
在线时间 | 42 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 42 小时
- 注册时间
- 2016-11-27
- 帖子
- 30
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
各位大佬们 ,RGSS3中有没有人写过能在地图上任意位置(坐标表示)显示文字
而且指定文本内容、字体格式的脚本呢?
下面这个STR27 可以结合显示图片的事件实现。如淡入文字、消去文字等 。
#============================================================================== # ★RGSS2 # STR27_文字ピクチャ生成 v1.2 09/04/18 # # ・指定した文字列をピクチャ表示させます。 # # ■使用方法 # 以下のスクリプトをイベントコマンドで実行した後、 # ピクチャの表示"コマンドで文字ピクチャを表示させます。 =begin ここから # テキスト t = "hogehoge" s = 20 # 文字サイズ p = 0 # フォントパターン text_picture(t, p, s) ここまで =end # # ※フォントパターンは下の設定箇所で定義します。 # ※フォントサイズが小さすぎたり大きすぎたりすると # エラーがでます。注意してください。 # #------------------------------------------------------------------------------ # # 更新履歴 # ◇1.1→1.2 # 影文字を無効に出来ない不具合を修正 # ◇1.0→1.1 # ""内の改行箇所などで・が表示されるバグを修正 # #============================================================================== # ★ フォントパターン定義(設定箇所) #============================================================================== module STRRGSS2 # ↓対応する値 # 通常の文字 STR27_FLIST = { #============================================================================== # GK TILES 0 => [GK::DEFAULT_FONT,false,false,false,false,Colors::AliceBlue,Color.new(0,0,0)], 1 => [GK::DEFAULT_FONT,false,false,false,false,Colors::MediumVioletred,Color.new(0,0,0)], 2 => [GK::DEFAULT_FONT,false,false,false,false,Colors::DeepSkyBlue,Color.new(0,0,0)], #白 縁:黒UmePlus Gothic 10 => [GK::DEFAULT_FONT, # フォント名 false, # 太字 false, # 斜体 true, # 影文字 true, # 縁取り Color.new(255,255,255), # 文字色 Color.new(0,0,0) # 縁取り色 ], #黄 縁:黒 11 => [GK::DEFAULT_FONT, # フォント名 false, # 太字 false, # 斜体 false, # 影文字 true, # 縁取り Color.new(255,255,0), # 文字色 Color.new(0,0,0) # 縁取り色 ], #青 12 => [GK::DEFAULT_FONT, # フォント名 true, # 太字 false, # 斜体 false, # 影文字 true, # 縁取り Color.new(100,100,255), # 文字色 Color.new( 0, 0, 0) # 縁取り色 ], #赤 13 => [GK::DEFAULT_FONT, # フォント名 true, # 太字 false, # 斜体 false, # 影文字 true, # 縁取り Color.new(255,100,100), # 文字色 Color.new( 0, 0, 0) # 縁取り色 ], #黄 14 => [GK::DEFAULT_FONT, # フォント名 true, # 太字 false, # 斜体 false, # 影文字 true, # 縁取り Color.new(200,200, 50), # 文字色 Color.new( 0, 0, 0) # 縁取り色 ], #マップアナウンス 15 => [GK::DEFAULT_FONT, # フォント名 false, # 太字 false, # 斜体 false, # 影文字 true, # 縁取り Color.new(255,255,255), # 文字色 Color.new(0,0,0) # 縁取り色 ], #パズルスタート 16 => [GK::DEFAULT_FONT, # フォント名 true, # 太字 false, # 斜体 true, # 影文字 false, # 縁取り Color.new(255,255,255), # 文字色 Color.new(0,0,0) # 縁取り色 ], #============================================================================== } # end #============================================================================== # ■ Game_Interpreter #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● 文字ピクチャ指定 #-------------------------------------------------------------------------- def text_picture(text, p = 0, size = 20) strfp = STRRGSS2::STR27_FLIST[p] font = Font.new(strfp[0], size) font.bold = strfp[1] ; font.italic = strfp[2] font.shadow = strfp[3] ; font.color = strfp[5] text.gsub!(/[\t\n\r\f]*/,"") @strtxpic = [text, STR_DumpFont.new(font, strfp[4], strfp[6])] end #-------------------------------------------------------------------------- # ● ピクチャの表示(エイリアス) #-------------------------------------------------------------------------- alias command_231_str27 command_231 def command_231 @params[1] = @strtxpic if @strtxpic != nil ; @strtxpic = nil command_231_str27 end end #============================================================================== # ■ Sprite_Picture #============================================================================== class Sprite_Picture < Sprite #-------------------------------------------------------------------------- # ● フレーム更新(エイリアス) #-------------------------------------------------------------------------- alias update_str27 update def update if @picture.name.is_a?(Array) and @picture_name != @picture.name # 文字ピクチャ @picture_name = @picture.name str27_update_2 if @picture_name != "" elsif @picture_name != @picture.name # 通常ピクチャ @picture_name = @picture.name if @picture_name != "" self.bitmap.dispose unless @picture_name.is_a?(String) self.bitmap = Cache.picture(@picture_name) end end # 呼び戻し update_str27 end #-------------------------------------------------------------------------- # ● 文字ピクチャ生成(追加) #-------------------------------------------------------------------------- def str27_update_2 self.bitmap.dispose if self.bitmap != nil and not @picture_name.is_a?(String) f = @picture_name[1].undump # 文字サイズ取得 self.bitmap = Bitmap.new(1, 1) ; self.bitmap.font = f[0] size = self.bitmap.text_size(@picture_name[0]) size.width += f[0].size / 4 if f[0].italic size.width += 4 ; self.bitmap.dispose # イメージ作成 self.bitmap = Bitmap.new(size.width + 2, size.height + 2) self.bitmap.font = f[0] ; self.bitmap.font.shadow = f[0].shadow unless f[1] self.bitmap.draw_text(1, 1, size.width, size.height, @picture_name[0]) else self.bitmap.draw_text_f(1, 1, size.width, size.height, @picture_name[0], 0, f[2]) end end end #============================================================================== # ■ STR_DumpFont #============================================================================== class STR_DumpFont #-------------------------------------------------------------------------- # ● 初期化 #-------------------------------------------------------------------------- def initialize(font, edge, ed_color) @name = font.name ; @size = font.size @bold = font.bold ; @italic = font.italic [url=home.php?mod=space&uid=31758]@Shadow[/url] = font.shadow ; [url=home.php?mod=space&uid=278544]@Edge[/url] = edge ; @ed_color = ed_color.clone [url=home.php?mod=space&uid=10453]@color[/url] = Color.new(font.color.red,font.color.green,font.color.blue,font.color.alpha) end #-------------------------------------------------------------------------- # ● 変換 #-------------------------------------------------------------------------- def undump font = Font.new(@name, @size) font.bold = @bold ; font.italic = @italic font.shadow = @shadow ; font.color = @color return [font, @edge, @ed_color] end end
#==============================================================================
# ★RGSS2
# STR27_文字ピクチャ生成 v1.2 09/04/18
#
# ・指定した文字列をピクチャ表示させます。
#
# ■使用方法
# 以下のスクリプトをイベントコマンドで実行した後、
# ピクチャの表示"コマンドで文字ピクチャを表示させます。
=begin
ここから
# テキスト
t = "hogehoge"
s = 20 # 文字サイズ
p = 0 # フォントパターン
text_picture(t, p, s)
ここまで
=end
#
# ※フォントパターンは下の設定箇所で定義します。
# ※フォントサイズが小さすぎたり大きすぎたりすると
# エラーがでます。注意してください。
#
#------------------------------------------------------------------------------
#
# 更新履歴
# ◇1.1→1.2
# 影文字を無効に出来ない不具合を修正
# ◇1.0→1.1
# ""内の改行箇所などで・が表示されるバグを修正
#
#==============================================================================
# ★ フォントパターン定義(設定箇所)
#==============================================================================
module STRRGSS2
# ↓対応する値
# 通常の文字
STR27_FLIST = {
#==============================================================================
# GK TILES
0 => [GK::DEFAULT_FONT,false,false,false,false,Colors::AliceBlue,Color.new(0,0,0)],
1 => [GK::DEFAULT_FONT,false,false,false,false,Colors::MediumVioletred,Color.new(0,0,0)],
2 => [GK::DEFAULT_FONT,false,false,false,false,Colors::DeepSkyBlue,Color.new(0,0,0)],
#白 縁:黒UmePlus Gothic
10 => [GK::DEFAULT_FONT, # フォント名
false, # 太字
false, # 斜体
true, # 影文字
true, # 縁取り
Color.new(255,255,255), # 文字色
Color.new(0,0,0) # 縁取り色
],
#黄 縁:黒
11 => [GK::DEFAULT_FONT, # フォント名
false, # 太字
false, # 斜体
false, # 影文字
true, # 縁取り
Color.new(255,255,0), # 文字色
Color.new(0,0,0) # 縁取り色
],
#青
12 => [GK::DEFAULT_FONT, # フォント名
true, # 太字
false, # 斜体
false, # 影文字
true, # 縁取り
Color.new(100,100,255), # 文字色
Color.new( 0, 0, 0) # 縁取り色
],
#赤
13 => [GK::DEFAULT_FONT, # フォント名
true, # 太字
false, # 斜体
false, # 影文字
true, # 縁取り
Color.new(255,100,100), # 文字色
Color.new( 0, 0, 0) # 縁取り色
],
#黄
14 => [GK::DEFAULT_FONT, # フォント名
true, # 太字
false, # 斜体
false, # 影文字
true, # 縁取り
Color.new(200,200, 50), # 文字色
Color.new( 0, 0, 0) # 縁取り色
],
#マップアナウンス
15 => [GK::DEFAULT_FONT, # フォント名
false, # 太字
false, # 斜体
false, # 影文字
true, # 縁取り
Color.new(255,255,255), # 文字色
Color.new(0,0,0) # 縁取り色
],
#パズルスタート
16 => [GK::DEFAULT_FONT, # フォント名
true, # 太字
false, # 斜体
true, # 影文字
false, # 縁取り
Color.new(255,255,255), # 文字色
Color.new(0,0,0) # 縁取り色
],
#==============================================================================
}
#
end
#==============================================================================
# ■ Game_Interpreter
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ● 文字ピクチャ指定
#--------------------------------------------------------------------------
def text_picture(text, p = 0, size = 20)
strfp = STRRGSS2::STR27_FLIST[p]
font = Font.new(strfp[0], size)
font.bold = strfp[1] ; font.italic = strfp[2]
font.shadow = strfp[3] ; font.color = strfp[5]
text.gsub!(/[\t\n\r\f]*/,"")
@strtxpic = [text, STR_DumpFont.new(font, strfp[4], strfp[6])]
end
#--------------------------------------------------------------------------
# ● ピクチャの表示(エイリアス)
#--------------------------------------------------------------------------
alias command_231_str27 command_231
def command_231
@params[1] = @strtxpic if @strtxpic != nil ; @strtxpic = nil
command_231_str27
end
end
#==============================================================================
# ■ Sprite_Picture
#==============================================================================
class Sprite_Picture < Sprite
#--------------------------------------------------------------------------
# ● フレーム更新(エイリアス)
#--------------------------------------------------------------------------
alias update_str27 update
def update
if @picture.name.is_a?(Array) and @picture_name != @picture.name
# 文字ピクチャ
@picture_name = @picture.name
str27_update_2 if @picture_name != ""
elsif @picture_name != @picture.name
# 通常ピクチャ
@picture_name = @picture.name
if @picture_name != ""
self.bitmap.dispose unless @picture_name.is_a?(String)
self.bitmap = Cache.picture(@picture_name)
end
end
# 呼び戻し
update_str27
end
#--------------------------------------------------------------------------
# ● 文字ピクチャ生成(追加)
#--------------------------------------------------------------------------
def str27_update_2
self.bitmap.dispose if self.bitmap != nil and not @picture_name.is_a?(String)
f = @picture_name[1].undump
# 文字サイズ取得
self.bitmap = Bitmap.new(1, 1) ; self.bitmap.font = f[0]
size = self.bitmap.text_size(@picture_name[0])
size.width += f[0].size / 4 if f[0].italic
size.width += 4 ; self.bitmap.dispose
# イメージ作成
self.bitmap = Bitmap.new(size.width + 2, size.height + 2)
self.bitmap.font = f[0] ; self.bitmap.font.shadow = f[0].shadow
unless f[1]
self.bitmap.draw_text(1, 1, size.width, size.height, @picture_name[0])
else
self.bitmap.draw_text_f(1, 1, size.width, size.height, @picture_name[0], 0, f[2])
end
end
end
#==============================================================================
# ■ STR_DumpFont
#==============================================================================
class STR_DumpFont
#--------------------------------------------------------------------------
# ● 初期化
#--------------------------------------------------------------------------
def initialize(font, edge, ed_color)
@name = font.name ; @size = font.size
@bold = font.bold ; @italic = font.italic
[url=home.php?mod=space&uid=31758]@Shadow[/url] = font.shadow ; [url=home.php?mod=space&uid=278544]@Edge[/url] = edge ; @ed_color = ed_color.clone
[url=home.php?mod=space&uid=10453]@color[/url] = Color.new(font.color.red,font.color.green,font.color.blue,font.color.alpha)
end
#--------------------------------------------------------------------------
# ● 変換
#--------------------------------------------------------------------------
def undump
font = Font.new(@name, @size)
font.bold = @bold ; font.italic = @italic
font.shadow = @shadow ; font.color = @color
return [font, @edge, @ed_color]
end
end
|
|