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

Project1

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

[已经过期] 呼叫主菜单报错

[复制链接]

Lv1.梦旅人

梦石
0
星屑
649
在线时间
15 小时
注册时间
2010-10-23
帖子
2
跳转到指定楼层
1
发表于 2010-10-24 10:28:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
偶正在借用那个仙剑三式菜单,复制完数据后,进入游戏,发现不能呼叫出菜单,直接报错
  BGM SFX Window 第十八行有错,不明白其意义,所以拿来问问。请各位帮帮忙吧。顺便一说,之前的截图存档也有问题,是我没有完全复制他的数据吗?【我直接删掉了截图存档了。。】

评分

参与人数 1星屑 -40 收起 理由
fux2 -40 看版规,请勿连帖

查看全部评分

Lv1.梦旅人

梦石
0
星屑
649
在线时间
15 小时
注册时间
2010-10-23
帖子
2
2
 楼主| 发表于 2010-10-24 10:28:47 | 只看该作者
本帖最后由 fux2 于 2010-11-5 07:38 编辑

这个是脚本
  1. #==============================================================================
  2. # ■ Window_CurrentBGM_Volume
  3. #==============================================================================
  4. class Window_CurrentBGM_Volume < Window_Base
  5.   def initialize
  6.     super(575, 100, 90, 96)
  7.     self.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  8.     self.opacity = 0
  9.     self.contents = Bitmap.new(width - 32, height - 32)
  10.     self.back_opacity = 160
  11.     refresh
  12.   end
  13.   def refresh
  14.     self.contents.clear
  15.     self.contents.font.size = 20
  16. #  self.contents.font.color = zise_color
  17. #  self.contents.draw_text(-0, 0, 160, 32, "BGM")
  18.     self.contents.font.color = zise_color       #【这里有错。。。】
  19.     self.contents.draw_text(-90, 25, 135, 32, $game_system.bgm_volume.to_s + "%", 2.9)
  20.   end
  21. end

  22. #==============================================================================
  23. # ■ Window_BGM_Volume
  24. #==============================================================================
  25. class Window_BGM_Volume < Window_Selectable
  26.   def initialize(width, commands)
  27.     #super(500, 110, commands.size * 32 + 32, width)
  28.     super(0, 0, 335, 40)
  29.     #@item_max = commands.size
  30.     @item_max = 7
  31.     @column_max = commands.size
  32.     @commands = commands
  33.     self.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  34.     self.opacity = 0
  35.     self.contents = Bitmap.new(@item_max * 32, height - 32)
  36.     self.back_opacity = 160
  37.     refresh
  38.     self.index = 0
  39.   end
  40.   def refresh
  41.     self.contents.clear
  42.     self.contents.font.size = 20
  43.     for i in 0...@column_max               #@item_max
  44.     draw_item(i, normal_color)
  45.     end
  46.   end
  47.   def draw_item(index, color)
  48.     self.contents.font.color = color
  49.     #rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
  50.     rect = Rect.new(32 * index,4 ,32 , self.contents.width - 8)
  51.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  52.     self.contents.draw_text(rect, @commands[index])
  53.   end
  54.   def disable_item(index)
  55.     draw_item(index, disabled_color)
  56.   end
  57. end

  58. class Window_BGM_Volume < Window_Selectable
  59.   #--------------------------------------------------------------------------
  60.   # ● 更新光标举行
  61.   #--------------------------------------------------------------------------
  62.   def update_cursor_rect
  63.     # 光标位置不满 0 的情况下
  64.     if @index < 0
  65.       self.cursor_rect.empty
  66.       return
  67.     end
  68.     # 获取当前的行
  69.     row = @index / @column_max
  70.     # 当前行被显示开头行前面的情况下
  71.     if row < self.top_row
  72.       # 从当前行向开头行滚动
  73.       self.top_row = row
  74.     end
  75.     # 当前行被显示末尾行之后的情况下
  76.     if row > self.top_row + (self.page_row_max - 1)
  77.       # 从当前行向末尾滚动
  78.       self.top_row = row - (self.page_row_max - 1)
  79.     end
  80.     # 计算光标的宽
  81.     cursor_width = 38 #600 / (@column_max + 1) - 32 - 32
  82.     # 计算光标坐标
  83.     #y = @index % @column_max * (cursor_width) + 10
  84.     #x = @index / @column_max * 32 - self.oy+270
  85.    
  86.     #==============暂加,给x,q赋值===================
  87.     x=15
  88.     q=20
  89.     #==============================================
  90.     for i in 0...(@index+1)
  91.       x= i* 38
  92.       y = 0 #i*80
  93.     # 更新光标矩形
  94.     self.cursor_rect.set(x, y, cursor_width, 20)
  95.   end
  96. end

  97.   #--------------------------------------------------------------------------
  98.   # ● 刷新画面
  99.   #--------------------------------------------------------------------------
  100.   def update
  101.     super
  102.     # 可以移动光标的情况下
  103.     if self.active and @item_max > 0 and @index >= 0
  104.       # 方向键下被按下的情况下
  105.       if Input.repeat?(Input::DOWN)
  106.         # 列数不是 1 并且方向键的下的按下状态不是重复的情况、
  107.         # 或光标位置在(项目数-列数)之前的情况下
  108.         if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
  109.            @index < @item_max - @column_max
  110.           # 光标向下移动
  111.           @index = (@index + @column_max) % @item_max
  112.         end
  113.       end
  114.       # 方向键上被按下的情况下
  115.       if Input.repeat?(Input::UP)
  116.         # 列数不是 1 并且方向键的下的按下状态不是重复的情况、
  117.         # 或光标位置在列之后的情况下
  118.         if (@column_max == 1 and Input.trigger?(Input::UP)) or
  119.            @index >= @column_max
  120.           # 光标向上移动
  121.           @index = (@index - @column_max + @item_max) % @item_max
  122.         end
  123.       end
  124.       # 方向键右被按下的情况下
  125.       if Input.repeat?(Input::RIGHT)
  126.         # 列数为 2 以上并且、光标位置在(项目数 - 1)之前的情况下
  127.         if @column_max >= 2 and @index < @item_max - 1
  128.           # 光标向右移动
  129.           @index += 1
  130.         end
  131.       end
  132.       # 方向键左被按下的情况下
  133.       if Input.repeat?(Input::LEFT)
  134.         # 列数为 2 以上并且、光标位置在 0 之后的情况下
  135.         if @column_max >= 2 and @index > 0
  136.           # 光标向左移动
  137.           @index -= 1
  138.         end
  139.       end
  140.       # R 键被按下的情况下
  141.       if Input.repeat?(Input::R)
  142.         # 显示的最后行在数据中最后行上方的情况下
  143.         if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
  144.           # 光标向后移动一页
  145.           @index = [@index + self.page_item_max, @item_max - 1].min
  146.           self.top_row += self.page_row_max
  147.         end
  148.       end
  149.       # L 键被按下的情况下
  150.       if Input.repeat?(Input::L)
  151.         # 显示的开头行在位置 0 之后的情况下
  152.         if self.top_row > 0
  153.           # 光标向前移动一页
  154.          
  155.           @index = [@index - self.page_item_max, 0].max
  156.           self.top_row -= self.page_row_max
  157.         end
  158.       end
  159.     end
  160.     # 刷新帮助文本 (update_help 定义了继承目标)
  161.     if self.active and @help_window != nil
  162.       update_help
  163.     end
  164.     # 刷新光标矩形
  165.     update_cursor_rect
  166.   end
  167. end




  168. #==============================================================================
  169. # ■ Window_CurrentSFX_Volume
  170. #==============================================================================
  171. class Window_CurrentSFX_Volume < Window_Base
  172.   def initialize
  173.     #super(460, 224, 180, 96)
  174.     super(575, 100, 90, 96)
  175.     self.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  176.     self.opacity = 0
  177.     self.contents = Bitmap.new(width - 32, height - 32)
  178.     self.back_opacity = 160
  179.     refresh
  180.   end
  181.   def refresh
  182.     self.contents.font.size = 20
  183.     self.contents.clear
  184.     #self.contents.font.color = zise_color
  185.     #self.contents.draw_text(-0, 0, 160, 32, "S E")
  186.     self.contents.font.color = zise_color
  187.     self.contents.draw_text(-90, 25, 135, 32, $game_system.se_volume.to_s + "%", 2.9)
  188.   end
  189. end

  190. #==============================================================================
  191. # ■ Window_SFX_Volume
  192. #==============================================================================
  193. class Window_SFX_Volume < Window_Selectable
  194.   def initialize(width, commands)
  195.     #super(380, 64, width, commands.size * 32 + 32)
  196.     super(0, 0, 335, 40)
  197.    # self.windowskin = RPG::Cache.windowskin("../system/menu/windowskins/palskin")
  198.     self.opacity = 180
  199.     @item_max = 7
  200.     @column_max = commands.size
  201.     @commands = commands
  202.     self.contents = Bitmap.new(width - 32, @item_max * 32)
  203.     self.back_opacity = 160
  204.     refresh
  205.     self.index = 0
  206.   end
  207.   def refresh
  208.     self.contents.clear
  209.     self.contents.font.size = 20
  210.     for i in 0...@column_max
  211.     draw_item(i, normal_color)
  212.     end
  213.   end
  214.   def draw_item(index, color)
  215.     self.contents.font.color = color
  216.     rect = Rect.new(32 * index,4 ,32 , self.contents.width - 8)
  217.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  218.     self.contents.draw_text(rect, @commands[index])
  219.   end
  220.   def disable_item(index)
  221.     draw_item(index, disabled_color)
  222.   end
  223. end


  224. class Window_SFX_Volume < Window_Selectable
  225.   #--------------------------------------------------------------------------
  226.   # ● 更新光标举行
  227.   #--------------------------------------------------------------------------
  228.   def update_cursor_rect
  229.     # 光标位置不满 0 的情况下
  230.     if @index < 0
  231.       self.cursor_rect.empty
  232.       return
  233.     end
  234.     # 获取当前的行
  235.     row = @index / @column_max
  236.     # 当前行被显示开头行前面的情况下
  237.     if row < self.top_row
  238.       # 从当前行向开头行滚动
  239.       self.top_row = row
  240.     end
  241.     # 当前行被显示末尾行之后的情况下
  242.     if row > self.top_row + (self.page_row_max - 1)
  243.       # 从当前行向末尾滚动
  244.       self.top_row = row - (self.page_row_max - 1)
  245.     end
  246.     # 计算光标的宽
  247.     cursor_width = 38 #600 / (@column_max + 1) - 32 - 32
  248.     # 计算光标坐标
  249.     #y = @index % @column_max * (cursor_width) + 10
  250.     #x = @index / @column_max * 32 - self.oy+270
  251.    
  252.     #==============暂加,给x,q赋值===================
  253.     x=15
  254.     q=20
  255.     #==============================================
  256.     for i in 0...(@index+1)
  257.       x= i* 38
  258.       y = 0 #i*80
  259.     # 更新光标矩形
  260.     self.cursor_rect.set(x, y, cursor_width, 20)
  261.   end
  262. end

  263.   #--------------------------------------------------------------------------
  264.   # ● 刷新画面
  265.   #--------------------------------------------------------------------------
  266.   def update
  267.     super
  268.     # 可以移动光标的情况下
  269.     if self.active and @item_max > 0 and @index >= 0
  270.       # 方向键下被按下的情况下
  271.       if Input.repeat?(Input::DOWN)
  272.         # 列数不是 1 并且方向键的下的按下状态不是重复的情况、
  273.         # 或光标位置在(项目数-列数)之前的情况下
  274.         if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
  275.            @index < @item_max - @column_max
  276.           # 光标向下移动
  277.           @index = (@index + @column_max) % @item_max
  278.         end
  279.       end
  280.       # 方向键上被按下的情况下
  281.       if Input.repeat?(Input::UP)
  282.         # 列数不是 1 并且方向键的下的按下状态不是重复的情况、
  283.         # 或光标位置在列之后的情况下
  284.         if (@column_max == 1 and Input.trigger?(Input::UP)) or
  285.            @index >= @column_max
  286.           # 光标向上移动
  287.           @index = (@index - @column_max + @item_max) % @item_max
  288.         end
  289.       end
  290.       # 方向键右被按下的情况下
  291.       if Input.repeat?(Input::RIGHT)
  292.         # 列数为 2 以上并且、光标位置在(项目数 - 1)之前的情况下
  293.         if @column_max >= 2 and @index < @item_max - 1
  294.           # 光标向右移动
  295.           @index += 1
  296.         end
  297.       end
  298.       # 方向键左被按下的情况下
  299.       if Input.repeat?(Input::LEFT)
  300.         # 列数为 2 以上并且、光标位置在 0 之后的情况下
  301.         if @column_max >= 2 and @index > 0
  302.           # 光标向左移动
  303.           @index -= 1
  304.         end
  305.       end
  306.       # R 键被按下的情况下
  307.       if Input.repeat?(Input::R)
  308.         # 显示的最后行在数据中最后行上方的情况下
  309.         if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
  310.           # 光标向后移动一页
  311.           @index = [@index + self.page_item_max, @item_max - 1].min
  312.           self.top_row += self.page_row_max
  313.         end
  314.       end
  315.       # L 键被按下的情况下
  316.       if Input.repeat?(Input::L)
  317.         # 显示的开头行在位置 0 之后的情况下
  318.         if self.top_row > 0
  319.           # 光标向前移动一页
  320.          
  321.           @index = [@index - self.page_item_max, 0].max
  322.           self.top_row -= self.page_row_max
  323.         end
  324.       end
  325.     end
  326.     # 刷新帮助文本 (update_help 定义了继承目标)
  327.     if self.active and @help_window != nil
  328.       update_help
  329.     end
  330.     # 刷新光标矩形
  331.     update_cursor_rect
  332.   end
  333. end
复制代码

点评

请在把脚本用代码发,用鼠标选中脚本,再点回复框上面的“”按钮(高级模式是“代码”2个字)就可以了,请编辑  发表于 2010-10-24 10:33
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 18:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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