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

Project1

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

[已经解决] 我找了好几个显示地名脚本都出现一样的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
235
在线时间
8 小时
注册时间
2012-4-30
帖子
4
跳转到指定楼层
1
发表于 2012-5-1 13:11:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 晴天sama 于 2012-5-1 14:11 编辑

点评

给出完整的脚本吧=。=这样我们也只能预判,又要和你说很久的  发表于 2012-5-1 13:35

Lv3.寻梦者

梦石
0
星屑
1449
在线时间
1592 小时
注册时间
2010-11-6
帖子
3193

贵宾

2
发表于 2012-5-1 15:33:35 | 只看该作者
本帖最后由 yychchhh 于 2012-5-1 15:33 编辑

解决了要选我为标准答案哦!
我就给你一条:
  1. #==============================================================================
  2. # 跳转地图时显示地图名 by 沉影不器
  3. #------------------------------------------------------------------------------
  4. # 功能: 在初进地图时,渐显地图名,随后渐隐
  5. #       对于不需要显示地图名的地图,请在地图名里添加字符"@"
  6. #       自定义各个地图名显示动画: 在地图名后加"_数字"
  7. #       例: "戈壁_1"表示此地图显示的地图名为"戈壁",使用1号动画
  8. #==============================================================================
  9. # ■ Spriteset_Map
  10. #==============================================================================
  11. class Spriteset_Map
  12.   #--------------------------------------------------------------------------
  13.   # ● 参数
  14.   #--------------------------------------------------------------------------
  15.   # 基本设定
  16.   MAX_OPACITY = 192                      # 最大不透明度
  17.   SHOW_COUNT = 120                       # 显示时间(均以帧为单位)
  18.   TRANS_COUNT = 60                       # 渐变时间
  19.   NAME_WIN_WIDTH = 192                   # 名称窗体宽度
  20.   NAME_WIN_HEIGHT = 56                   # 名称窗体高度
  21.   
  22.   # 美化选项
  23.   FONT_SIZE = 20                         # 名称字体大小
  24.   FONT_COLOR = Color.new(255,255,255)    # 名称字体颜色
  25.   FONT_SHADOW = true                     # 名称字体是否描绘阴影
  26.   SKIN = "Window"                    # 名称窗体自定义皮肤(空字符时隐藏窗体)
  27.   ANIMATION_ID = 0                      # 显示名称时的动画 ID(0以下为无动画)
  28.   #--------------------------------------------------------------------------
  29.   # ● 初始化对象
  30.   #--------------------------------------------------------------------------
  31.   alias ini initialize
  32.   def initialize
  33.     # 获取地图名
  34.     name = get_map_name($game_map.map_id)
  35.     if $game_temp.old_map_name != name
  36.       $game_temp.old_map_name = name
  37.       unless name.include? "@"
  38.         create_name_window
  39.       end
  40.     end
  41.     ini
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ○ 生成名窗体
  45.   #--------------------------------------------------------------------------
  46.   def create_name_window
  47.     # 初始化参数
  48.     @show_count = SHOW_COUNT
  49.     @trans_count_1 = TRANS_COUNT
  50.     @trans_count_2 = TRANS_COUNT
  51.     animation_id = get_animation_id($game_map.map_id)
  52.     animation_id = ANIMATION_ID if animation_id <= 0
  53.     # 显示动画
  54.     @name_animation = Sprite_Base.new(@viewport2)
  55.     @name_animation.x = Graphics.width/2
  56.     @name_animation.y = Graphics.height/2
  57.     if animation_id > 0
  58.       animation = $data_animations[animation_id]
  59.       if animation != nil
  60.         @name_animation.start_animation(animation)
  61.       else
  62.         p '指定动画不存在!'
  63.       end
  64.     end
  65.     x = (Graphics.width - NAME_WIN_WIDTH)/2
  66.     y = (Graphics.height - NAME_WIN_HEIGHT)/2
  67.     # 生成窗体
  68.     @name_window = Window_Base.new(x, y, NAME_WIN_WIDTH, NAME_WIN_HEIGHT)
  69.     @name_window.windowskin = Cache.system(SKIN)
  70.     @name_window.contents.font.size = FONT_SIZE
  71.     @name_window.contents.font.color = FONT_COLOR
  72.     @name_window.contents.font.shadow = FONT_SHADOW
  73.     @name_window.viewport = @viewport3
  74.     @name_window.opacity = 0
  75.     @name_window.contents_opacity = 0
  76.     # 地图名
  77.     text = $game_temp.old_map_name
  78.     @name_window.contents.draw_text(0,0,NAME_WIN_WIDTH-32,FONT_SIZE+4,text,1)
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ○ 获取地图名
  82.   #     map_id : 地图 ID
  83.   #--------------------------------------------------------------------------
  84.   def get_map_name(map_id)
  85.     mapinfo = load_data("Data/MapInfos.rvdata")
  86.     result = mapinfo[map_id].name
  87.     return result.split(/,/)[0].split(/_/)[0]
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ○ 获取动画 ID
  91.   #     map_id : 地图 ID
  92.   #--------------------------------------------------------------------------
  93.   def get_animation_id(map_id)
  94.     mapinfo = load_data("Data/MapInfos.rvdata")
  95.     result = mapinfo[map_id].name
  96.     return result.split(/,/)[0].split(/_/)[1].to_i
  97.   end
  98.   #--------------------------------------------------------------------------
  99.   # ○ 更新名窗体
  100.   #--------------------------------------------------------------------------
  101.   def update_name_window
  102.     return if @name_window == nil
  103.     # 已关闭时不需更新
  104.     return unless @name_window.visible
  105.     # 更新动画
  106.     @name_animation.update
  107.     # 渐现
  108.     if @trans_count_1 >= 0
  109.       @trans_count_1 -= 1
  110.       @name_window.opacity += MAX_OPACITY/TRANS_COUNT
  111.       @name_window.contents_opacity += MAX_OPACITY/TRANS_COUNT
  112.     end
  113.     # 显示时间计数
  114.     if @show_count >=0
  115.       @show_count -= 1
  116.     end
  117.     # 渐隐
  118.     if @show_count <= 0
  119.       if @trans_count_2 > 0
  120.         @trans_count_2 -= 1
  121.         @name_window.opacity -= MAX_OPACITY/TRANS_COUNT
  122.         @name_window.contents_opacity -= MAX_OPACITY/TRANS_COUNT
  123.       end
  124.       if @trans_count_2 <= 0
  125.         @name_window.visible = false
  126.       end
  127.     end
  128.   end
  129.   #--------------------------------------------------------------------------
  130.   # ● 释放
  131.   #--------------------------------------------------------------------------
  132.   alias old_dispose dispose
  133.   def dispose
  134.     old_dispose
  135.     return if @name_window == nil
  136.     @name_window.dispose
  137.     @name_animation.dispose
  138.   end
  139.   #--------------------------------------------------------------------------
  140.   # ● 刷新画面
  141.   #--------------------------------------------------------------------------
  142.   alias old_update update
  143.   def update
  144.     old_update
  145.     update_name_window
  146.   end
  147. end

  148. #==============================================================================
  149. # ■ Game_Temp
  150. #==============================================================================
  151. class Game_Temp
  152.   #--------------------------------------------------------------------------
  153.   # ● 定义实例变量
  154.   #--------------------------------------------------------------------------
  155.   attr_accessor :old_map_name        # 背景位图
  156.   #--------------------------------------------------------------------------
  157.   # ● 初始化对象
  158.   #--------------------------------------------------------------------------
  159.   alias ini initialize
  160.   def initialize
  161.     ini
  162.     @old_map_name = ""
  163.   end
  164. end
复制代码
走你耶。
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-26 11:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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