目前共有2篇帖子。 内容转换:不转换▼
 
点击 回复
181 1
【ruby】【原创】rmxp显示地图名字的窗口
初入江湖 七级
1楼 发表于:2011-1-2 22:37
#==============================================================================
# ■ Window_MapName
#------------------------------------------------------------------------------
#    显示地图名称的窗口。
#==============================================================================

class Window_MapName < Window_Base
   #--------------------------------------------------------------------------
   # ● 初始化窗口
   #--------------------------------------------------------------------------
   def initialize
     super(380, 20, 220, 60)
     self.contents = Bitmap.new(width - 32, height - 32)
     @times = [10,10,34,16]
     @window = [244,144,255]
     update
   end
   #--------------------------------------------------------------------------
   # ● 刷新
   #--------------------------------------------------------------------------
   def update
     if $game_switches[1]
       newid = $game_map.map_id
       name = $data_map[newid].name
       time = @times[1] + @times[2] + @times[3]
       if newid != @id
         @id = newid
         @show_time = @times[0] + @times[1] + @times[2] + @times[3]
       elsif @show_time < 1
         self.opacity = 0
         self.back_opacity = 0
         self.contents_opacity = 0
         return
       end
       self.contents.clear
       self.contents.font.color = Color.new(255, 255, 255, 255)
       self.contents.draw_text(4, 0 , width - 40, 32, name, 1)
      
       if @show_time > (@times[2] + @times[3])
         if @show_time < time
           self.opacity=((@window[0]/@times[1])*(time - @show_time)).to_i
           self.back_opacity=((@window[1]/@times[1])*(time - @show_time)).to_i
           self.contents_opacity=((@window[2]/@times[1])*(time-@show_time)).to_i
         else
           self.opacity = 0
           self.back_opacity = 0
           self.contents_opacity = 0
         end
       else
         if @show_time < (@times[3] / 16 * 14)
           self.opacity = ((@window[0] / @times[3]) * @show_time).to_i
         else
           self.opacity = @window[0]
         end
         if @show_time < (@times[3] / 16 * 9)
           self.back_opacity = ((@window[1] / @times[3]) * @show_time).to_i
         else
           self.back_opacity = @window[1]
         end
         if @show_time < @times[3]
           self.contents_opacity = ((@window[2] / @times[3])* @show_time).to_i
         else
           self.contents_opacity = @window[2]
         end
       end      
       @show_time -= 1
     else
       self.opacity = 0
       self.back_opacity = 0
       self.contents_opacity = 0
     end
   end
end

初入江湖 七级
2楼 发表于:2011-1-2 22:38
Scene_Title类,$data_system         = load_data("Data/System.rxdata")前加上:
$data_map            = load_data("Data/MapInfos.rxdata")
Scene_Map类:@message_window = Window_Message.new下加上:
@mapname_window = Window_MapName.new;
@message_window.dispose下加上:
@mapname_window.dispose
@message_window.update下加上:
@mapname_window.update

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:181 回复数:1
评论数: ?
作者:产品的注销
最后回复:产品的注销
最后回复时间:2011-1-2 22:38
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。