Project1

标题: [已更改]更改读档界面透明度 [打印本页]

作者: 紫英晓狼1130    时间: 2013-4-4 18:08
标题: [已更改]更改读档界面透明度
本帖最后由 紫英晓狼1130 于 2013-4-5 05:44 编辑

希望大家告诉我:如何更改读档界面的透明度
这样是想让游戏的界面更美观

估计是游戏的问题,更改完无效
画面就像调了亮度,有些黑
改透明度也只是上方的Windowskin更改

当画面未经过刷新(当存档的“文件X”被更换)时,全是黑的

刷新后,又正常了,但只是下方的存档更改,“要载入哪个文件”的透明度一样

所以说,这需要更改背景的黑色
改为透明的,再将“文件X”的透明度更改即可

代码复制
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #==============================================================================  
  4. # --------------------------------------------------------------------  
  5. # 本脚本来自[url]www.66rpg.com[/url],转载自[url]www.phylomortis.com[/url],转载请保留此信息
  6. # --------------------------------------------------------------------
  7. class Scene_File
  8.   #——最大存档数量,一般我认为最多50足够了,20比较合适
  9.   SAVEFILE_MAX = 50
  10.   # -------------------
  11.   def initialize(help_text)
  12.     @help_text = help_text
  13.   end
  14.   # -------------------
  15.   def main
  16.     @help_window = Window_Help.new
  17.     @help_window.set_text(@help_text)
  18.     @help_window.opacity = 160
  19.     @savefile_windows = []
  20.     @cursor_displace = 0
  21.     for i in 0..3
  22.       @savefile_windows.push(Window_SaveFile.new(i, make_filename(i), i))
  23.       @savefile_windows[i].opacity = 160
  24.     end
  25.     @file_index = 0
  26.     @savefile_windows[@file_index].selected = true
  27.     Graphics.transition
  28.     loop do
  29.       Graphics.update
  30.       Input.update
  31.       update
  32.       if $scene != self
  33.         break
  34.       end
  35.     end
  36.     Graphics.freeze
  37.     @help_window.dispose
  38.     for i in @savefile_windows
  39.       i.dispose
  40.     end
  41.   end
  42.   # -------------------
  43.   def update
  44.     @help_window.update
  45.     for i in @savefile_windows
  46.       i.update
  47.     end
  48.     if Input.trigger?(Input::C)
  49.       on_decision(make_filename(@file_index))
  50.       $game_temp.last_file_index = @file_index
  51.       return
  52.     end
  53.     if Input.trigger?(Input::B)
  54.       on_cancel
  55.       return
  56.     end
  57.     if Input.repeat?(Input::DOWN)
  58.       if Input.trigger?(Input::DOWN) or @file_index < SAVEFILE_MAX - 1
  59.         if @file_index == SAVEFILE_MAX - 1
  60.           $game_system.se_play($data_system.buzzer_se)
  61.           return
  62.         end
  63.         @cursor_displace += 1
  64.         if @cursor_displace == 4
  65.           @cursor_displace = 3
  66.           for i in @savefile_windows
  67.             i.dispose
  68.           end
  69.           @savefile_windows = []
  70.           for i in 0..3
  71.             f = i - 1 + @file_index
  72.             name = make_filename(f)
  73.             @savefile_windows.push(Window_SaveFile.new(f, name, i))
  74.             @savefile_windows[i].selected = false
  75.           end
  76.         end
  77.         $game_system.se_play($data_system.cursor_se)
  78.         @file_index = (@file_index + 1)
  79.         if @file_index == SAVEFILE_MAX
  80.           @file_index = SAVEFILE_MAX - 1
  81.         end
  82.         for i in 0..3
  83.           @savefile_windows[i].selected = false
  84.         end
  85.         @savefile_windows[@cursor_displace].selected = true
  86.         return
  87.       end
  88.     end
  89.     if Input.repeat?(Input::UP)
  90.       if Input.trigger?(Input::UP) or @file_index > 0
  91.         if @file_index == 0
  92.           $game_system.se_play($data_system.buzzer_se)
  93.           return
  94.         end
  95.         @cursor_displace -= 1
  96.         if @cursor_displace == -1
  97.           @cursor_displace = 0
  98.           for i in @savefile_windows
  99.             i.dispose
  100.           end
  101.           @savefile_windows = []
  102.           for i in 0..3
  103.             f = i - 1 + @file_index
  104.             name = make_filename(f)
  105.             @savefile_windows.push(Window_SaveFile.new(f, name, i))
  106.             @savefile_windows[i].selected = false
  107.           end
  108.         end
  109.         $game_system.se_play($data_system.cursor_se)
  110.         @file_index = (@file_index - 1)
  111.         if @file_index == -1
  112.           @file_index = 0
  113.         end
  114.         for i in 0..3
  115.           @savefile_windows[i].selected = false
  116.           @help_window.opacity = 160
  117.         end
  118.         @savefile_windows[@cursor_displace].selected = true
  119.         return
  120.       end
  121.     end
  122.   end
  123.   # -------------------
  124.   def make_filename(file_index)
  125.     return "Save/Save#{file_index + 1}.rxdata"
  126.   end
  127.   # -------------------
  128. end
  129.  
  130.  
  131. class Window_SaveFile < Window_Base
  132.   # -------------------
  133.   def initialize(file_index, filename, position)
  134.     y = 63 + position * 139
  135.     super(0, y, 640, 139)
  136.     self.contents = Bitmap.new(width - 32, height - 32)
  137.     @file_index = file_index
  138.     @filename = "Save/Save#{@file_index + 1}.rxdata"
  139.     @time_stamp = Time.at(0)
  140.     @file_exist = FileTest.exist?(@filename)
  141.     if @file_exist
  142.       file = File.open(@filename, "r")
  143.       @time_stamp = file.mtime
  144.       @characters = Marshal.load(file)
  145.       @frame_count = Marshal.load(file)
  146.       @game_system = Marshal.load(file)
  147.       @game_switches = Marshal.load(file)
  148.       @game_variables = Marshal.load(file)
  149.       @total_sec = @frame_count / Graphics.frame_rate
  150.       file.close
  151.     end
  152.     refresh
  153.     @selected = false
  154.   end
  155. end

希望大家帮忙~
如果您没有时间,没关系,谢谢您~
如果您能回答的话,十分感谢您~
作者: 弗雷德    时间: 2013-4-4 18:15
本帖最后由 弗雷德 于 2013-4-4 18:18 编辑

Scene_File下:
main里面:
一开头:
  1. # 生成帮助窗口
  2. @help_window = Window_Help.new
  3. @help_window.set_text(@help_text)
复制代码
改成:
透明度自己定
  1. # 生成帮助窗口
  2. @spriteset = Spriteset_Map.new
  3. @help_window = Window_Help.new
  4. @help_window.set_text(@help_text)
  5. @help_window.opacity = 100
复制代码
第24行左右:
有这么一段
  1. for i in 0..3
  2.       @savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
  3.     end
复制代码
加中间加一句:
透明度自己定
  1.     for i in 0..3
  2.       @savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
  3.       @savefile_windows[i].opacity = 100
  4.     end
复制代码
48行左右
  1. # 释放窗口
  2. @help_window.dispose
  3. for i in @savefile_windows
  4. i.dispose
  5. end
复制代码
加一句:
  1. # 释放窗口
  2. @help_window.dispose
  3. for i in @savefile_windows
  4. i.dispose
  5. end
  6. @spriteset.dispose
复制代码

作者: 美丽晨露    时间: 2013-4-4 18:16
修改 Window_Help内的透明度和 Window_SaveFile的透明度
加入:self.back_opacity = 160
作者: 弗雷德    时间: 2013-4-4 18:19
刚刚漏写一段,又加了一句
作者: 紫英晓狼1130    时间: 2013-4-5 13:48
自己已经想了办法,还没法解决,好像界面被刷新了一样...
作者: 美丽晨露    时间: 2013-4-5 13:54
范例一枚,不知道楼主改了什么地方
范例.zip (302.03 KB, 下载次数: 20)
作者: 弗雷德    时间: 2013-4-5 21:40
晓狼能把你未改动过的脚本发上来么,目测你是没有添加这一句:@spriteset = Spriteset_Map.new,你再回头看看俺标注的几个地方。






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1