赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 2458 |
最后登录 | 2014-8-23 |
在线时间 | 57 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 57 小时
- 注册时间
- 2012-7-23
- 帖子
- 23
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 白灵卿 于 2013-2-24 13:31 编辑
原日站的一个VX脚本,目前被我移植到了VA上。下面的RGSS2说明是作者的注释,里面有说这
个脚本的功能。脚本行那边的注释也很有用。各位若懂日语可以看一下。我这里简单说一下,
首先是可以自行更改显示位置以及显示字体,可以到中间显示,可以显示为斜体等等,要更
改的话可以直接参考下注释,机翻的话也应该能看懂,十分方便(・ω・)っ另外,还可以达到脚
本中添加注释的功能。地图名里写了“#”的话“#”的后面都不会显示。更多具体的功能,还是
看一下作者的注释吧w
适合解谜游戏中房间多的游戏,当玩家不知道这是什么房间的时候只要停下来就可以看房间名
了。- #==============================================================================
- # ★RGSS3
- # VA移植说明
- =begin
- 本脚本是在RGSS2的基础上改编完成的
- 会达到不走动时显示地图名的效果
- ID白灵卿 (Yo)完成
- 转载或使用请注明改编者和出处
-
- =end
- #==============================================================================
- #==============================================================================
- # ★RGSS2
- # STR04_マップネーム表示 v1.1 09/03/17
- #
- # ・マップ画面にマップ名を表示します。
- # ・文字を縦グラデーション描画可能。
- # ☆マップ名のコメントアウト(?)機能付き。
- # マップ名の"#"以降の文字をカットして表示します。
- # (例) 炎の洞窟/二階#小部屋その1 → 炎の洞窟/二階
- # ・イベント中、歩行中に非表示にすることが出来ます。
- #------------------------------------------------------------------------------
- #
- # 更新履歴
- # ◇1.0→1.1
- # 入手インフォの下に表示される不具合を修正
- # デフォルトの設定を変更
- #
- #==============================================================================
- # ■ Sprite_Strmapname
- #==============================================================================
- class Sprite_Strmapname < Sprite
- # マップネーム表示位置
- TEXT_RECT = Rect.new(20, 16, 240, 20) # 左揃い
- #TEXT_RECT = Rect.new(272-160, 16, 320, 24) # 中央揃い
- #TEXT_RECT = Rect.new(544-336, 416-40, 320, 24 # 右揃い
- # フォントネーム
- TEXT_FONT = ["UmePlus Gothic", "MS Pゴシック"] # UmePlus優先
- #TEXT_FONT = ["MS Pゴシック", "UmePlus Gothic"] # MSPゴシック優先
- # テキストサイズ
- TEXT_SIZE = 17
- # 文字装飾 [マップネーム前の文字,マップネーム後ろの文字]
- TEXT_TEXT = [" ", ""]
- # 文字揃え 0:左揃い 1:中央揃い 2:右揃い
- TEXT_ALIGN =0
- # テキスト縁取り true = 有効 false = 無効
- TEXT_FRAME = true
- # テキストグラデーション(縦) true = 有効 false = 無効
- TEXT_GRADIENT = true
- # テキストカラー [グラデーション↑,グラデーション↓,縁取り]
- TEXT_COLOR = [Color.new(255,255,255), Color.new(160,224,255), Color.new(32,32,32)]
- # 斜体・太字 true = 有効 false = 無効
- TEXT_ITAL = false
- TEXT_BOLD = false
- # 簡易背景表示 true = 有効 false = 無効
- TEXT_BACK = true
- # 背景色 [グラデーション濃,グラデーション薄]
- TEXT_B_COLOR = [Color.new(0,0,0,160), Color.new(0,0,0,0)]
- # イベント中は非表示にする true = 有効 false = 無効
- TEXT_EVENT_V = true
- # プレイヤー移動中は非表示にする true = 有効 false = 無効
- TEXT_PMOVE_V = true
- # マップネームのコメントアウト文字 デフォルトは "#"
- TEXT_C_OUT = "#"
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- def initialize(viewport)
- super(viewport)
- t = TEXT_TEXT[0] + map_name(TEXT_C_OUT) + TEXT_TEXT[1]
- self.visible = false if map_name(TEXT_C_OUT) == ""
- r = TEXT_RECT
- h = TEXT_SIZE + 2
- bitmap = Bitmap.new(r.width, r.height)
- # 背景描画
- if TEXT_BACK
- case TEXT_ALIGN
- when 0
- bitmap.gradient_fill_rect(16, 0, r.width-32, r.height, TEXT_B_COLOR[0], TEXT_B_COLOR[1])
- bitmap.gradient_fill_rect(0, 0, 16, r.height, TEXT_B_COLOR[1], TEXT_B_COLOR[0])
- when 1
- bitmap.gradient_fill_rect(r.width/2, 0, r.width/2, r.height, TEXT_B_COLOR[0], TEXT_B_COLOR[1])
- bitmap.gradient_fill_rect(0, 0, r.width/2, r.height, TEXT_B_COLOR[1], TEXT_B_COLOR[0])
- when 2
- bitmap.gradient_fill_rect(r.width-16, 0, 16, r.height, TEXT_B_COLOR[0], TEXT_B_COLOR[1])
- bitmap.gradient_fill_rect(32, 0, r.width-48, r.height, TEXT_B_COLOR[1], TEXT_B_COLOR[0])
- end
- end
- # フォント設定
- bitmap.font.name = TEXT_FONT
- bitmap.font.size = TEXT_SIZE
- bitmap.font.italic = TEXT_ITAL
- bitmap.font.bold = TEXT_BOLD
- # 縁取り
- bitmap.font.shadow = false
- if TEXT_FRAME
- bitmap.font.color = TEXT_COLOR[2]
- bitmap.draw_text(-1, 0, r.width, h, t, TEXT_ALIGN)
- bitmap.draw_text(1, 0, r.width, h, t, TEXT_ALIGN)
- bitmap.draw_text(0, 1, r.width, h, t, TEXT_ALIGN)
- bitmap.draw_text(0, -1, r.width, h, t, TEXT_ALIGN)
- bitmap.draw_text(+1, +1, r.width, h, t, TEXT_ALIGN)
- else
- bitmap.font.shadow = true
- end
- # 文字A
- b1 = Bitmap.new(r.width, r.height)
- # フォント設定
- b1.font.name = TEXT_FONT
- b1.font.size = TEXT_SIZE
- b1.font.italic = TEXT_ITAL
- b1.font.bold = TEXT_BOLD
- b1.font.color = TEXT_COLOR[0]
- b1.draw_text(0, 0, r.width, h, t, TEXT_ALIGN)
- bitmap.font.shadow = false
- src = Rect.new(0, 0, r.width, r.height)
- d = Rect.new(0, 0, r.width, r.height)
- bitmap.stretch_blt(d, b1, src)
- # 文字B
- if TEXT_GRADIENT
- b2 = Bitmap.new(r.width, r.height)
- # フォント設定
- b2.font.name = TEXT_FONT
- b2.font.size = TEXT_SIZE
- b2.font.italic = TEXT_ITAL
- b2.font.bold = TEXT_BOLD
- b2.font.color = TEXT_COLOR[1]
- b2.draw_text(0, 0, r.width, h, t, TEXT_ALIGN)
- y = TEXT_SIZE + 4
- src.height = 1
- d.height = 1
- # グラデーション
- for yy in 1..y
- op = 260 * (yy/(y*1.0))
- src.y = yy
- d.y = yy
- bitmap.stretch_blt(d, b2, src, op)
- end
- end
- self.bitmap = bitmap
- self.x = r.x
- self.y = r.y
- self.z = 240
- [url=home.php?mod=space&uid=316553]@opacity[/url] = 0
- self.opacity = @opacity
- update
- end
- #--------------------------------------------------------------------------
- # ● 解放
- #--------------------------------------------------------------------------
- def dispose
- if self.bitmap != nil
- self.bitmap.dispose
- end
- super
- end
- #--------------------------------------------------------------------------
- # ● フレーム更新
- #--------------------------------------------------------------------------
- def update
- if ($game_map.interpreter.running? and TEXT_EVENT_V) or (moving? and TEXT_PMOVE_V)
- @opacity = [[@opacity - 32, -64].max, 256].min
- else
- @opacity = [[@opacity + 32, -64].max, 256].min
- end
- self.opacity = @opacity
- end
- #--------------------------------------------------------------------------
- # ● 移動判定
- #--------------------------------------------------------------------------
- def moving?
- return (not $game_player.stopping?)
- end
- #--------------------------------------------------------------------------
- # ● マップネーム取得
- #--------------------------------------------------------------------------
- def map_name(out)
- n = $game_map.map_name.split('')
- t = ""
- for i in 0...n.size
- break if n[i] == out
- t += n[i]
- end
- return t
- end
- end
- #==============================================================================
- # ■ Spriteset_Map
- #==============================================================================
- class Spriteset_Map
- #--------------------------------------------------------------------------
- # ★ 追加
- #--------------------------------------------------------------------------
- def create_strmapname
- @str_mapname = Sprite_Strmapname.new(@viewport2)
- end
- def dispose_strmapname
- @str_mapname.dispose
- end
- def update_strmapname
- @str_mapname.update
- end
- #--------------------------------------------------------------------------
- # ★ エイリアス
- #--------------------------------------------------------------------------
- alias initialize_str04 initialize
- def initialize
- create_strmapname
- initialize_str04
- end
- alias dispose_str04 dispose
- def dispose
- dispose_str04
- dispose_strmapname
- end
- alias update_str04 update
- def update
- update_str04
- update_strmapname
- end
- end
- #==============================================================================
- # ■ Game_Map
- #==============================================================================
- class Game_Map
- #--------------------------------------------------------------------------
- # ★ 追加
- #--------------------------------------------------------------------------
- def map_name
- map = load_data("Data/MapInfos.rvdata2")
- return map[@map_id].name
- end
- end
复制代码 下面一张浏览图:
附增一个范例工程:
百度网盘:http://pan.baidu.com/share/link?shareid=360870&uk=2953481629
脚本如果有什么问题请回复…… |
|