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

Project1

 找回密码
 注册会员
搜索

关于显示地图名的问题

查看数: 4207 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2011-4-24 10:55

正文摘要:

本帖最后由 嚴子 于 2011-4-24 16:29 编辑 用了显示地图名脚本后,在进入地图、战斗结束后、从菜单回到地图后都会显示一次地图名。求教如何让该脚本只在进入地图时显示一次以及让地图名显示在中间。#============ ...

回复

嚴子 发表于 2011-4-24 16:28:56
回复 Wind2010 的帖子

貌似可以了,感谢前辈。
Wind2010 发表于 2011-4-24 14:03:39
回复 嚴子 的帖子

这样试试
  1. #==============================================================================
  2. # ■ Window_MapName
  3. #------------------------------------------------------------------------------
  4. #  显示地图名字的窗口。
  5. #==============================================================================
  6. class Window_MapName < Window_Base
  7. #--------------------------------------------------------------------------
  8. # ● 类常量定义
  9. #--------------------------------------------------------------------------
  10. # 暂时屏蔽用的开关
  11. SWITCH = 35
  12.   
  13. # 窗口位置设定
  14. NAME_X = 210      # 矩形左上顶点X坐标
  15. NAME_Y = 210       # 矩形左上顶点Y坐标
  16. NAME_W = 220      # 矩形宽
  17. NAME_H = 60       # 矩形高
  18.   
  19. # 显示时间设置
  20. SHOW_TIME_0 = 10 # 地图名出现前等待的帧数
  21. SHOW_TIME_1 = 10 # 地图名从不可见变成可见的帧数
  22. SHOW_TIME_2 = 34 # 地图名完全可见的帧数
  23. SHOW_TIME_3 = 16 # 地图名从可见变成不可见的帧数
  24.   
  25. # 完全可见时的透明度设置
  26. OPACITY_1 = 244   # 边框
  27. OPACITY_2 = 144   # 背景
  28. OPACITY_3 = 255   # 文字
  29.   
  30. # 地图名字的颜色
  31. TEXT_COLOR = Color.new(255, 255, 255, 255)
  32.   
  33. #--------------------------------------------------------------------------
  34. # ● 初始化状态
  35. #--------------------------------------------------------------------------
  36. def initialize
  37.     super(NAME_X , NAME_Y, NAME_W, NAME_H)
  38.     # 初始化窗口透明度
  39.     self.opacity = 0
  40.     self.back_opacity = 0
  41.     self.contents_opacity = 0
  42.     self.contents = Bitmap.new(width - 32, height - 32)
  43.     # 剩余帧数初始化
  44.     @show_time = 0
  45. end
  46. #--------------------------------------------------------------------------
  47. # ● 输出文字
  48. #--------------------------------------------------------------------------
  49. def setname   
  50.     unless $game_switches[SWITCH]==true
  51.       # 获取地图ID
  52.       newid = $game_map.map_id
  53.       time = SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3  
  54.       # 如果现在的地图的ID不是刚才显示的地图ID则开始显示
  55.       if newid != $虱子_当前地图id
  56.         $虱子_当前地图id = newid
  57.         @show_time = SHOW_TIME_0 + SHOW_TIME_1 + SHOW_TIME_2 + SHOW_TIME_3
  58.       # 剩余帧数为0是时,全部窗口透明
  59.       elsif @show_time < 1
  60.         self.opacity = 0
  61.         self.back_opacity = 0
  62.         self.contents_opacity = 0
  63.         return
  64.       end      
  65.       self.contents.clear
  66.       self.contents.font.color = TEXT_COLOR
  67.       # 描绘地图名
  68.       self.contents.draw_text(4, 0 , width - 40, 32, $data_mapinfos[$虱子_当前地图id].name, 1)
  69.       # 根本帧数设定窗口透明度
  70.       if @show_time > (SHOW_TIME_2 + SHOW_TIME_3)
  71.         self.opacity = @show_time < time ? (((OPACITY_1 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  72.         self.back_opacity = @show_time < time ? (((OPACITY_2 / SHOW_TIME_1 )* (time - @show_time)).to_i) : 0
  73.         self.contents_opacity = @show_time < time ? (((OPACITY_3 / SHOW_TIME_1) * (time - @show_time)).to_i) : 0
  74.       else
  75.         self.opacity = @show_time < (SHOW_TIME_3 / 16 * 14) ? ((OPACITY_1 / SHOW_TIME_3) * @show_time).to_i : OPACITY_1
  76.         self.back_opacity = @show_time < (SHOW_TIME_3 / 16 * 9) ? ((OPACITY_2 / SHOW_TIME_3) * @show_time).to_i : OPACITY_2
  77.         self.contents_opacity = @show_time < SHOW_TIME_3 ? ((OPACITY_3 / SHOW_TIME_3)* @show_time).to_i : OPACITY_3
  78.       end      
  79.       @show_time -= 1
  80.     end
  81.   end
  82. end
  83. #==============================================================================
  84. # ■ Scene_Map
  85. #------------------------------------------------------------------------------
  86. #  处理地图画面的类。(追加定义)
  87. #==============================================================================
  88. class Scene_Map
  89. unless @alias_5
  90.   @alias_5 = true
  91.   alias smn_main main
  92. end
  93. def main
  94.     @mapname = Window_MapName.new
  95.     smn_main
  96.     @mapname.dispose
  97. end
  98.   
  99. alias smn_update update
  100. def update
  101.     @mapname.setname
  102.     smn_update
  103. end
  104. end
  105. #==============================================================================
  106. # ■ Scene_Title
  107. #------------------------------------------------------------------------------
  108. #  处理标题画面的类。(追加定义)
  109. #==============================================================================
  110. class Scene_Title
  111. unless @alias_4
  112.   @alias_4 = true
  113.   alias smn_main main
  114. end
  115. def main
  116.     # 读取地图信息文件
  117.     $data_mapinfos = load_data("Data/MapInfos.rxdata")
  118.     smn_main
  119. end
  120. end
复制代码

评分

参与人数 1星屑 +400 梦石 +2 收起 理由
fux2 + 400 + 2 认可答案

查看全部评分

Wind2010 发表于 2011-4-24 13:30:15
14——17行:
  1. NAME_X = 210      # 矩形左上顶点X坐标
  2. NAME_Y = 210       # 矩形左上顶点Y坐标
  3. NAME_W = 220      # 矩形宽
  4. NAME_H = 60       # 矩形高
复制代码
55——56行改成:
  1.       if newid != $虱子_地图ID显示
  2.         $虱子_地图ID显示 = newid
复制代码
嚴子 发表于 2011-4-24 13:17:41
光说不练假把式。诸位热心前辈,小弟对脚本一窍不通,请诸位前辈直接帮我该脚本。
烁灵 发表于 2011-4-24 13:02:39
本帖最后由 烁灵 于 2011-4-24 13:03 编辑

回复 个快快 的帖子

编辑。。我错了T_T
禾西 发表于 2011-4-24 13:00:30
把事件中的場所移動方法截一下就行了
个快快 发表于 2011-4-24 12:54:41
这个恐怕不能实现,这个脚本是加载地图的时候运行的
烁灵 发表于 2011-4-24 12:48:18
本帖最后由 烁灵 于 2011-4-24 13:13 编辑

回复 嚴子 的帖子

咱方法有错喵> <
编辑...
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-15 12:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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