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

Project1

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

[已经解决] 怎么让每张地图进入时左上方都会出现地图名字?

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
15 小时
注册时间
2011-5-8
帖子
24
跳转到指定楼层
1
发表于 2011-5-11 13:25:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv1.梦旅人

梦石
0
星屑
70
在线时间
233 小时
注册时间
2011-4-25
帖子
148
2
发表于 2011-5-11 13:29:55 | 只看该作者
  1. #==============================================================================
  2. # ■ 地图名显示脚本
  3. #     by Yuee
  4. #------------------------------------------------------------------------------
  5. #==============================================================================
  6. # ■ Window_MapName
  7. #------------------------------------------------------------------------------
  8. #  显示地图名字的窗口。
  9. #==============================================================================

  10. class Window_MapName < Window_Base
  11.   #--------------------------------------------------------------------------
  12.   # ● 类常量定义
  13.   #--------------------------------------------------------------------------

  14.   # 暂时屏蔽用的开关
  15.   SWITCH = 3
  16.   
  17.   # 窗口位置设定
  18.   NAME_X = 10       # 矩形左上顶点X坐标
  19.   NAME_Y = 410      # 矩形左上顶点Y坐标
  20.   NAME_W = 240      # 矩形宽
  21.   NAME_H = 60       # 矩形高
  22.   
  23.   # 显示时间设置
  24.   SHOW_TIME_0 = 2   # 地图名出现前等待的帧数
  25.   SHOW_TIME_1 = 10  # 地图名从不可见变成可见的帧数
  26.   SHOW_TIME_2 = 60  # 地图名完全可见的帧数
  27.   SHOW_TIME_3 = 16  # 地图名从可见变成不可见的帧数
  28.   
  29.   # 完全可见时的透明度设置
  30.   OPACITY_1 =180     # 边框
  31.   OPACITY_2 =180     # 背景
  32.   OPACITY_3 =250     # 文字
  33.   
  34.   # 地图名字的颜色
  35.   TEXT_COLOR = Color.new(255, -20, -17, 255)
  36.    
  37.   #--------------------------------------------------------------------------
  38.   # ● 初始化状态
  39.   #--------------------------------------------------------------------------
  40.   def initialize
  41.     super(NAME_X , NAME_Y, NAME_W, NAME_H)
  42.     # 初始化窗口透明度
  43.     self.opacity = 0
  44.     self.back_opacity = 0
  45.     self.contents_opacity = 0
  46.     self.contents = Bitmap.new(width - 32, height - 32)
  47.     # 剩余帧数初始化
  48.     @show_time = 0
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 输出文字
  52.   #--------------------------------------------------------------------------
  53.   def setname   
  54.     unless $game_switches[SWITCH]==true
  55.       # 获取地图ID
  56.       newid = $game_map.map_id
  57.       time = SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3  
  58.       # 如果现在的地图的ID不是刚才显示的地图ID则开始显示
  59.       if newid != @id
  60.         @id = newid
  61.         @show_time = SHOW_TIME_0 + SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3
  62.       # 剩余帧数为0是时,全部窗口透明
  63.       elsif @show_time < 1
  64.         self.opacity = 0
  65.         self.back_opacity = 0
  66.         self.contents_opacity = 0
  67.         return
  68.       end      
  69.       self.contents.clear
  70.       self.contents.font.color = TEXT_COLOR
  71.       # 描绘地图名
  72.       self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[@id].name, 1)
  73.       # 根本帧数设定窗口透明度
  74.       if @show_time > (SHOW_TIME_2 + SHOW_TIME_3)
  75.         self.opacity = @show_time < time ? (((OPACITY_1 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  76.         self.back_opacity = @show_time < time ? (((OPACITY_2 / SHOW_TIME_1 )* (time - @show_time)).to_i) : 0
  77.         self.contents_opacity = @show_time < time ? (((OPACITY_3 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  78.       else
  79.         self.opacity = @show_time < (SHOW_TIME_3 / 16 * 14) ? ((OPACITY_1 / SHOW_TIME_3) * @show_time).to_i : OPACITY_1
  80.         self.back_opacity = @show_time < (SHOW_TIME_3 / 16 * 9) ? ((OPACITY_2 / SHOW_TIME_3) * @show_time).to_i : OPACITY_2
  81.         self.contents_opacity = @show_time < SHOW_TIME_3 ? ((OPACITY_3 / SHOW_TIME_3)* @show_time).to_i : OPACITY_3
  82.       end      
  83.       @show_time -= 1
  84.     end
  85.   end
  86. end

  87. #==============================================================================
  88. # ■ Scene_Map
  89. #------------------------------------------------------------------------------
  90. #  处理地图画面的类。(追加定义)
  91. #==============================================================================

  92. class Scene_Map
  93.   alias smn_main main
  94.   def main
  95.     @mapname = Window_MapName.new
  96.     smn_main
  97.     @mapname.dispose
  98.   end
  99.   
  100.   alias smn_update update
  101.   def update
  102.     @mapname.setname
  103.     smn_update
  104.   end
  105. end

  106. #==============================================================================
  107. # ■ Scene_Title
  108. #------------------------------------------------------------------------------
  109. #  处理标题画面的类。(追加定义)
  110. #==============================================================================

  111. class Scene_Title
  112.   alias smn_main main
  113.   def main
  114.     # 读取地图信息文件
  115.     $data_mapinfos = load_data("Data/MapInfos.rxdata")
  116.     smn_main
  117.   end
  118. end
  119. #==============================================================================
  120. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  121. #===========================================================================----
复制代码


李思无于2011-5-11 13:30补充以下内容:
注意看16行17行~

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
「旅」 + 200 + 2

查看全部评分

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
15 小时
注册时间
2011-5-8
帖子
24
3
 楼主| 发表于 2011-5-11 14:01:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1020
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

4
发表于 2011-5-11 14:11:44 | 只看该作者
本帖最后由 禾西 于 2011-5-11 14:12 编辑

剛好全2有這個東西,怎麼用不需要解釋了吧
  1. # ▼▲▼ XRXS20. マップ名表示ウィンドウ 1.01 ▼▲▼
  2. # by にふ, 桜雅 在土

  3. #=======================================================
  4. # note:11.27.10
  5. class Scene_Map
  6.   #//不顯示地圖名字的地圖ID組
  7.   #//Hidden_Map_IDs = [1,2,3]
  8.   Hidden_Map_IDs = [1,2,3,20,50,112,113,114,115,116,117,118,119,143,163,238,
  9.   239,270,271,272,273,274,275,276,326,375,376,377,378,388,389,390,391,392,393,
  10.   394,395,396]
  11. end
  12. =======================
  13. # ■ Window_Map_Name
  14. #------------------------------------------------------------------------------
  15. #  マップ名を表示するウィンドウです。
  16. #==============================================================================
  17. class Window_Map_Name < Window_Base
  18.   #--------------------------------------------------------------------------
  19.   # ● オブジェクト初期
  20.   #--------------------------------------------------------------------------
  21.   def initialize
  22.     super(460, 0, 180, 64)
  23.     #//這里可以加外觀
  24.     #self.windowskin = RPG::Cache.windowskin("3")
  25.     self.windowskin = nil
  26.     self.contents = Bitmap.new(width-32, height-32)
  27.     self.opacity = 0
  28.     @showing_time = 0
  29.     @text_color = Color.new(255,255,255,255) # 地名:描写文字色
  30.     @hidden_flag = Scene_Map::Hidden_Map_IDs.include? ($game_map.map_id)
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● テキスト設定
  34.   # text : ウィンドウに表示する文字列
  35.   # align : アラインメント (0..左揃え、1..中央揃え、2..右揃え)
  36.   #--------------------------------------------------------------------------
  37.   def set_text(text, align = 2)
  38.     # テキストとアラインメントの少なくとも一方が前回と違っている場合
  39.     if text != @text or align != @align
  40.       @text = text
  41.       @align = align
  42.       if Scene_Map::Hidden_Map_IDs.include? ($game_map.map_id)
  43.         self.visible = false
  44.         @showing_time = 0
  45.         return
  46.       end
  47.       self.opacity = 0
  48.       self.contents_opacity = 0
  49.       self.x = 0
  50.       @target_x = 330
  51.       @target_opacity = 255
  52.       @showing_time = 150
  53.       # テキストを再描画
  54.       self.contents.clear
  55.       x = 4
  56.       y = 0
  57.       self.contents.font.color = Color.new( 0, 0, 0, 192)
  58.       self.contents.draw_text(x+2, y+2, self.width - 40, 32, "-"+text+"-",1)
  59.       self.contents.font.color = Color.new( 64, 64, 64, 192)
  60.       self.contents.draw_text(x-1, y-1, self.width - 40, 32, "-"+text+"-", 1)
  61.       self.contents.draw_text(x+1, y-1, self.width - 40, 32, "-"+text+"-", 1)
  62.       self.contents.draw_text(x-1, y+1, self.width - 40, 32, "-"+text+"-", 1)
  63.       self.contents.draw_text(x+1, y+1, self.width - 40, 32, "-"+text+"-", 1)
  64.       self.contents.font.color = @text_color
  65.       self.contents.draw_text(x, y, self.width - 40, 32, "-"+text+"-", 1)
  66.       self.visible = true
  67.     end
  68.     if @showing_time != 0
  69.       @showing_time -= 1
  70.       if @showing_time < 150 and @showing_time > 100
  71.         d = @showing_time - 100
  72.         self.x = (self.x * (d - 1) + @target_x) / d
  73.         self.opacity = (self.opacity * (d - 1) + 255) / d
  74.         self.contents_opacity = self.opacity
  75.       elsif @showing_time < 10 and @showing_time > 0
  76.         d = @showing_time
  77.         self.x = (self.x * (d - 1) + 480) / d
  78.         self.opacity = (self.opacity * (d - 1) + 0) / d
  79.         self.contents_opacity = self.opacity
  80.       elsif @showing_time <= 0
  81.         # 一定時間経過したので表示を消す
  82.         self.contents.clear
  83.       end
  84.     end
  85.   end
  86. end
  87. #==============================================================================
  88. # ■ Scene_Map
  89. #==============================================================================
  90. class Scene_Map
  91.   #--------------------------------------------------------------------------
  92.   # ● メイン処理
  93.   #--------------------------------------------------------------------------
  94.   alias xrxs20_main main
  95.   def main
  96.     # 地名ウィンドウを作成
  97.     @map_name_window = Window_Map_Name.new
  98.     @map_name_window.opacity = 0
  99.     # 戻す
  100.     xrxs20_main
  101.     # 地名ウィンドウを解放
  102.     @map_name_window.dispose
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● フレーム更新
  106.   #--------------------------------------------------------------------------
  107.   alias xrxs20_update update
  108.   def update
  109.     # 地名ウィンドウの更新
  110.     @map_name_window.set_text($game_map.name, 1)
  111.     xrxs20_update
  112.   end
  113. end
  114. $map_infos = {}
  115. load_data("Data/MapInfos.rxdata").each do |key, ref|
  116.   $map_infos[key] = ref.name
  117. end
  118. $map_infos.freeze

  119. #==============================================================================
  120. # ■ Game_Map
  121. #==============================================================================
  122. class Game_Map
  123.   #--------------------------------------------------------------------------
  124.   # ● マップ名を取得
  125.   #--------------------------------------------------------------------------
  126.   def name
  127.     $map_infos[@map_id]
  128.   end
  129. end
复制代码

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
「旅」 + 200 + 2

查看全部评分

不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 13:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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