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

Project1

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

[已经解决] 求助--在mapname中加入图片后按菜单键图片不消失

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
228 小时
注册时间
2012-2-27
帖子
30
跳转到指定楼层
1
发表于 2012-8-9 23:04:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 l616631804 于 2012-8-9 23:05 编辑

今天尝试在mapname中加入图片效果获得成功, 现在的问题是在显示地图名中如果按菜单键图片会一直显示在画面中。   请问怎么样才能在按菜单键后隐藏图片,并且在退出菜单后,如果地图名未显示完继续显示图片!修改后的脚本如下
RUBY 代码复制
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Window_MapName
  4. #------------------------------------------------------------------------------
  5. #  显示地图名称的窗口。
  6. #==============================================================================
  7. class Window_MapName < Window_Base
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对象
  10.   #--------------------------------------------------------------------------
  11.   def initialize
  12.         super(0, 0, window_width, fitting_height(2))
  13.         self.opacity = 0
  14.         self.contents_opacity = 0
  15.         self.x =  0
  16.         self.y = Graphics.height / 2
  17.  
  18.         @mapnamebj = Sprite.new
  19.         @mapnamebj1 = Sprite.new
  20.         @show_count = 0
  21.         refresh
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 获取窗口的宽度
  25.   #--------------------------------------------------------------------------
  26.   def window_width
  27.     Graphics.width
  28. #~         return 240
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 更新画面
  32.   #--------------------------------------------------------------------------
  33.   def update
  34.         super
  35.         if @show_count > 0 && $game_map.name_display
  36.           update_fadein
  37.           @show_count -= 1
  38.         else
  39.           update_fadeout
  40.         end
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 更新淡入
  44.   #--------------------------------------------------------------------------
  45.   def update_fadein
  46.         self.contents_opacity += 16
  47.         @mapnamebj.opacity += 16
  48.         @mapnamebj1.opacity += 16
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 更新淡出
  52.   #--------------------------------------------------------------------------
  53.   def update_fadeout
  54.         self.contents_opacity -= 16
  55.         @mapnamebj.opacity -= 16
  56.         @mapnamebj1.opacity -= 16
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 打开窗口
  60.   #--------------------------------------------------------------------------
  61.   def open
  62.         refresh
  63.         @show_count = 100
  64.         self.contents_opacity = 0
  65.         self
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● 关闭窗口
  69.   #--------------------------------------------------------------------------
  70.   def close
  71.         @show_count = 0
  72.         self
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 刷新
  76.   #--------------------------------------------------------------------------
  77.   def refresh
  78.         contents.clear
  79.         unless $game_map.display_name.empty?
  80.           draw_background(contents.rect)
  81.  
  82. #~           color = Color.new(172, 16, 24)
  83. #~           change_color(color)
  84.           contents.font.size = 36
  85.           draw_text(contents.rect, $game_map.display_name, 1)
  86.         end
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # ● 绘制背景
  90.   #----------------- ---------------------------------------------------------
  91.   def draw_background(rect)
  92.         temp_rect = rect.clone
  93.         temp_rect.width /= 2
  94.         contents.gradient_fill_rect(temp_rect, back_color2, back_color1)
  95.         @mapnamebj = Sprite.new
  96.         @mapnamebj.bitmap = Cache.system("mapnamebj.png")
  97.         @mapnamebj.z = 9999
  98.         @mapnamebj.x =  temp_rect.width - 48
  99.         @mapnamebj.y = Graphics.height / 2 - 20
  100.  
  101.         @mapnamebj1 = Sprite.new
  102.         @mapnamebj1.bitmap = Cache.system("mapnamebj1.png")
  103.         @mapnamebj1.z = 9999
  104.         @mapnamebj1.x = temp_rect.width - 48
  105.         @mapnamebj1.y = Graphics.height / 2 +40
  106.  
  107.       for i in 1..15
  108.           @mapnamebj.x += 5
  109.           @mapnamebj1.x -= 5
  110.           Graphics.update
  111.         end
  112.         @mapnamebj.opacity = 0
  113.         @mapnamebj1.opacity = 0
  114.  
  115.         temp_rect.x = temp_rect.width
  116.         contents.gradient_fill_rect(temp_rect, back_color1, back_color2)
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 获取背景色 1
  120.   #--------------------------------------------------------------------------
  121.   def back_color1
  122.         Color.new(21, 66, 95, 192)
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 获取背景色 2
  126.   #--------------------------------------------------------------------------
  127.   def back_color2
  128.         Color.new(0, 0, 0, 0)
  129.   end
  130.  
  131.  
  132.  
  133. end

QQ截图20120809224636.png (234.34 KB, 下载次数: 16)

QQ截图20120809224636.png

Lv1.梦旅人

梦石
0
星屑
50
在线时间
228 小时
注册时间
2012-2-27
帖子
30
2
 楼主| 发表于 2012-8-10 08:36:39 | 只看该作者
本帖最后由 l616631804 于 2012-8-10 10:52 编辑

擦,为什么显示不完全呢?,是浏览器的问题还是论坛的问题呢?


今天尝试在mapname中加入图片效果获得成功,现在的问题是在显示地图名中如果按菜单键图片会一直显示在画面中。  请问怎么样才能在按菜单键后隐藏图片,并且在退出菜单后,如果地图名未显示完继续显示图片!修改后的脚本如下

#encoding:utf-8
#==============================================================================
# ■ Window_MapName
#------------------------------------------------------------------------------
#  显示地图名称的窗口。
#==============================================================================
class Window_MapName < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize
        super(0, 0, window_width, fitting_height(2))
        self.opacity = 0
        self.contents_opacity = 0
        self.x =  0
        self.y = Graphics.height / 2

        @mapnamebj = Sprite.new
        @mapnamebj1 = Sprite.new
        @show_count = 0
        refresh
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的宽度
  #--------------------------------------------------------------------------
  def window_width
    Graphics.width
#~         return 240
  end
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
        super
        if @show_count > 0 && $game_map.name_display
          update_fadein
          @show_count -= 1
        else
          update_fadeout
        end
  end
  #--------------------------------------------------------------------------
  # ● 更新淡入
  #--------------------------------------------------------------------------
  def update_fadein
        self.contents_opacity += 16
        @mapnamebj.opacity += 16
        @mapnamebj1.opacity += 16
  end
  #--------------------------------------------------------------------------
  # ● 更新淡出
  #--------------------------------------------------------------------------
  def update_fadeout
        self.contents_opacity -= 16
        @mapnamebj.opacity -= 16
        @mapnamebj1.opacity -= 16
  end
  #--------------------------------------------------------------------------
  # ● 打开窗口
  #--------------------------------------------------------------------------
  def open
        refresh
        @show_count = 100
        self.contents_opacity = 0
        self
  end
  #--------------------------------------------------------------------------
  # ● 关闭窗口
  #--------------------------------------------------------------------------
  def close
        @show_count = 0
        self
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
        contents.clear
        unless $game_map.display_name.empty?
          draw_background(contents.rect)
         
#~           color = Color.new(172, 16, 24)
#~           change_color(color)
          contents.font.size = 36
          draw_text(contents.rect, $game_map.display_name, 1)
        end
  end
  #--------------------------------------------------------------------------
  # ● 绘制背景
  #----------------- ---------------------------------------------------------
  def draw_background(rect)
        temp_rect = rect.clone
        temp_rect.width /= 2
        contents.gradient_fill_rect(temp_rect, back_color2, back_color1)
        @mapnamebj = Sprite.new
        @mapnamebj.bitmap = Cache.system("mapnamebj.png")
        @mapnamebj.z = 9999
        @mapnamebj.x =  temp_rect.width - 48
        @mapnamebj.y = Graphics.height / 2 - 20
        
        @mapnamebj1 = Sprite.new
        @mapnamebj1.bitmap = Cache.system("mapnamebj1.png")
        @mapnamebj1.z = 9999
        @mapnamebj1.x = temp_rect.width - 48
        @mapnamebj1.y = Graphics.height / 2 +40
        
      for i in 1..15
          @mapnamebj.x += 5
          @mapnamebj1.x -= 5
          Graphics.update
        end
        @mapnamebj.opacity = 0
        @mapnamebj1.opacity = 0

        temp_rect.x = temp_rect.width
        contents.gradient_fill_rect(temp_rect, back_color1, back_color2)
  end
  #--------------------------------------------------------------------------
  # ● 获取背景色 1
  #--------------------------------------------------------------------------
  def back_color1
        Color.new(21, 66, 95, 192)
  end
  #--------------------------------------------------------------------------
  # ● 获取背景色 2
  #--------------------------------------------------------------------------
  def back_color2
        Color.new(0, 0, 0, 0)
  end
end


擦,不用代码框看能不能显示全哟!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
491 小时
注册时间
2012-1-27
帖子
421

整合系统大赛RMVA达人

3
发表于 2012-8-10 22:08:25 | 只看该作者
是因为没释放吧,没看到dispose啊
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
228 小时
注册时间
2012-2-27
帖子
30
4
 楼主| 发表于 2012-8-11 08:54:26 | 只看该作者
主要问题是不知道在什么地方让它释放,尝试加了几个地方都不行呢!
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
841 小时
注册时间
2010-8-11
帖子
1135
5
发表于 2012-8-11 23:09:51 | 只看该作者
在脚本最后一个end前加入:
  1. def dispose
  2.   super
  3.   @mapnamebj.dispose
  4. end
复制代码
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
228 小时
注册时间
2012-2-27
帖子
30
6
 楼主| 发表于 2012-8-12 09:57:22 | 只看该作者
多谢 945127391 了,居然在这里卡脑袋了!真够悲剧的!
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 15:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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