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

Project1

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

[已经解决] 怎么更改显示地图名的位置?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
96
在线时间
81 小时
注册时间
2015-6-30
帖子
48
跳转到指定楼层
1
发表于 2015-7-2 11:09:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 VIPArcher 于 2015-7-2 12:01 编辑

内置的显示地图名脚本。默认是显示在屏幕中间,我想改到屏幕左上角要怎么弄?

RUBY 代码复制
  1. # encoding: utf-8
  2. #==============================================================================
  3. # ** Window_MapNamePlus
  4. #------------------------------------------------------------------------------
  5. #  This window displays the map name.
  6. #------------------------------------------------------------------------------
  7. #  使用方法:
  8. #  在地图属性的设置窗口,“显示名称”中的地图名格式:“中文名@EnglishName”,
  9. #  即用“@”分割中文和英文地图名
  10. #==============================================================================
  11.  
  12. class Window_MapNamePlus < Window_Base
  13.   #--------------------------------------------------------------------------
  14.   # * Settings
  15.   #--------------------------------------------------------------------------
  16.   FONT_NAME_CH = ["迷你简行楷", "楷体_GB2312"]       # Chinese Font Name
  17.   FONT_SIZE_CH = 36                             # Chinese Font Size
  18.   FONT_NAME_EN = ["Monotype Corsiva"]           # English Font Name
  19.   FONT_SIZE_EN = 24                             # English Font Size
  20.   FONT_BOLD    = false                          # True if Font in Bold
  21.   FONT_COLOR   = Color.new(255, 255, 0, 255)    # Color of Font
  22.   FONT_OUT     = true                           # True if Font Has Outline
  23.   OUT_COLOR    = Color.new(0, 0, 0, 200)        # Color of Outline Color of Font
  24.   FONT_SHADOW  = false                          # True if Text Drops Shadow
  25.   MODIFIER     = "~"                            # Modifier Added beside Map Name
  26.   PADDING      = 8                              # Padding between Window's Frame and Contents
  27.   LINE_HEIGHT  = 6                              # Height of Split Line
  28.   #--------------------------------------------------------------------------
  29.   # * Public Instance Variables
  30.   #--------------------------------------------------------------------------
  31.   attr_reader :map_name_ch                      # Chinese Map Name
  32.   attr_reader :map_name_en                      # English Map Name
  33.   attr_reader :line_x                           # Split Line X Coordinate
  34.   attr_reader :line_y                           # Split Line Y Coordinate
  35.   #--------------------------------------------------------------------------
  36.   # * Object Initialization
  37.   #--------------------------------------------------------------------------
  38.   def initialize
  39.     #----------------------------------------------------------------------
  40.     # * Set the window in the middle of screen.
  41.     #----------------------------------------------------------------------
  42.     super(((Graphics.width - window_width) / 2),
  43.       ((Graphics.height - (FONT_SIZE_CH + FONT_SIZE_EN + PADDING * 4 + LINE_HEIGHT)) / 2),
  44.       window_width, FONT_SIZE_CH + FONT_SIZE_EN + PADDING * 4 + LINE_HEIGHT)
  45.     #----------------------------------------------------------------------
  46.     # * Custom font and style.
  47.     #----------------------------------------------------------------------
  48.     contents.font.bold      = FONT_BOLD
  49.     contents.font.color     = FONT_COLOR
  50.     contents.font.outline   = FONT_OUT
  51.     contents.font.out_color = OUT_COLOR
  52.     contents.font.shadow    = FONT_SHADOW
  53.     #----------------------------------------------------------------------
  54.     # * Set Window Opacity
  55.     #----------------------------------------------------------------------
  56.     self.opacity = 0
  57.     self.contents_opacity = 0
  58.     @show_count = 0
  59.     refresh
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # * Get Window Width
  63.   #--------------------------------------------------------------------------
  64.   def window_width
  65.     return Graphics.width
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # * Frame Update
  69.   #--------------------------------------------------------------------------
  70.   def update
  71.     super
  72.     if @show_count > 0 && $game_map.name_display
  73.       update_fadein
  74.       @show_count -= 1
  75.     else
  76.       update_fadeout
  77.     end
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # * Update Fadein
  81.   #--------------------------------------------------------------------------
  82.   def update_fadein
  83.     self.contents_opacity += 16
  84.   end
  85.   #--------------------------------------------------------------------------
  86.   # * Update Fadeout
  87.   #--------------------------------------------------------------------------
  88.   def update_fadeout
  89.     self.contents_opacity -= 16
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # * Open Window
  93.   #--------------------------------------------------------------------------
  94.   def open
  95.     refresh
  96.     @show_count = 150
  97.     self.contents_opacity = 0
  98.     self
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # * Close Window
  102.   #--------------------------------------------------------------------------
  103.   def close
  104.     @show_count = 0
  105.     self
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # * Refresh
  109.   #--------------------------------------------------------------------------
  110.   def refresh
  111.     contents.clear
  112.     set_map_name
  113.     unless $game_map.display_name.empty?
  114.       draw_map_name
  115.     end
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # * Draw Line
  119.   #--------------------------------------------------------------------------
  120.   def draw_line(rect)
  121.     temp_rect = rect.clone
  122.     temp_rect.height = LINE_HEIGHT
  123.     temp_rect.width /= 4
  124.     contents.gradient_fill_rect(temp_rect, color2, color1)
  125.     temp_rect.x += temp_rect.width
  126.     temp_rect.width *= 2
  127.     contents.fill_rect(temp_rect, color1)
  128.     temp_rect.x += temp_rect.width
  129.     temp_rect.width /= 2
  130.     contents.gradient_fill_rect(temp_rect, color1, color2)
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # * Set Map Name
  134.   #--------------------------------------------------------------------------
  135.   def set_map_name
  136.     temp_map_name = $game_map.display_name.split("@")
  137.     @map_name_ch  = temp_map_name[0].to_s
  138.     @map_name_en  = MODIFIER + " " + temp_map_name[1].to_s + " " + MODIFIER
  139.   end
  140.   #--------------------------------------------------------------------------
  141.   # * Draw Map Name
  142.   #--------------------------------------------------------------------------
  143.   def draw_map_name
  144.     set_line_position
  145.     set_line_width
  146.     temp_line_rect = Rect.new(@line_x, @line_y, set_line_width, LINE_HEIGHT)
  147.     draw_line(temp_line_rect)
  148.     temp_name_rect_ch = Rect.new(0, 0, contents.width, FONT_SIZE_CH)
  149.     contents.font.name = FONT_NAME_CH
  150.     contents.font.size = FONT_SIZE_CH
  151.     draw_text(temp_name_rect_ch, @map_name_ch, 1)
  152.     temp_name_rect_en = Rect.new(0, FONT_SIZE_CH, contents.width, FONT_SIZE_EN)
  153.     contents.font.size = FONT_SIZE_EN
  154.     contents.font.name = FONT_NAME_EN
  155.     draw_text(temp_name_rect_en, @map_name_en, 1)
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # * Set Line Width
  159.   #--------------------------------------------------------------------------
  160.   def set_line_width
  161.     text_width_ch = text_size(@map_name_ch).width * 1.5
  162.     text_width_en = text_size(@map_name_en).width * 1.5
  163.     (text_width_ch >= text_width_en) ?
  164.       (text_width_ch) : (text_width_en)
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   # * Set Line Position
  168.   #--------------------------------------------------------------------------
  169.   def set_line_position
  170.     @line_x = (contents.width - set_line_width) / 2
  171.     @line_y = (contents.height - LINE_HEIGHT) / 2
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # * Get Color 1
  175.   #--------------------------------------------------------------------------
  176.   def color1
  177.     Color.new(255, 255, 255, 255)
  178.   end
  179.   #--------------------------------------------------------------------------
  180.   # * Get Color 2
  181.   #--------------------------------------------------------------------------
  182.   def color2
  183.     Color.new(255, 255, 255, 0)
  184.   end
  185. end
  186.  
  187. #==============================================================================
  188. # ■ Scene_Map
  189. #------------------------------------------------------------------------------
  190. #  地图画面
  191. #==============================================================================
  192.  
  193. class Scene_Map < Scene_Base
  194.   #--------------------------------------------------------------------------
  195.   # ● 生成地图名称窗口重定义
  196.   #--------------------------------------------------------------------------
  197.   def create_location_window
  198.     @map_name_window = Window_MapNamePlus.new
  199.   end
  200. end

以后发脚本请善用论坛代码框功能 —— VIPArcher留言

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

2
发表于 2015-7-2 12:07:25 | 只看该作者
本帖最后由 VIPArcher 于 2015-7-2 12:38 编辑

修改42行super后面的参数。或者新建个脚本页插入下面的东西。
  1. class Window_MapNamePlus < Window_Base
  2.   alias vip_20150702_initialize initialize
  3.   def initialize
  4.     vip_20150702_initialize
  5.     #self.move(x, y, width, height)  #x,y,width, height 改成你需要的位置
  6.     self.move(0, 0, window_width, FONT_SIZE_CH + FONT_SIZE_EN + PADDING * 4 + LINE_HEIGHT) # 比如改成这样试试?
  7.   end
  8. end
复制代码
未测试

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
96
在线时间
81 小时
注册时间
2015-6-30
帖子
48
3
 楼主| 发表于 2015-7-2 12:30:27 | 只看该作者
VIPArcher 发表于 2015-7-2 12:07
修改42行super后面的参数。或者新建个脚本页插入下面的东西。未测试

42行的不知道怎么改,这个脚本用了之后文字高度变了,不过还是在中间的位置。。。。求指教

点评

楼上那个不是叫你直接用的=。=你要把x,y用你自己需要的数值代入=。=  发表于 2015-7-2 12:35
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
96
在线时间
81 小时
注册时间
2015-6-30
帖子
48
4
 楼主| 发表于 2015-7-2 13:25:09 | 只看该作者
cc623925 发表于 2015-7-2 12:30
42行的不知道怎么改,这个脚本用了之后文字高度变了,不过还是在中间的位置。。。。求指教 ...

我知道,我设置了数值。他还是在中间只是高度变了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
96
在线时间
81 小时
注册时间
2015-6-30
帖子
48
5
 楼主| 发表于 2015-7-6 09:27:09 | 只看该作者
X值改为负值就好了。。。我太笨了。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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