Project1

标题: 请问装备刷新在哪里= = [打印本页]

作者: 一醉倾城    时间: 2009-2-1 21:41
标题: 请问装备刷新在哪里= =
     问一下。当选择装备的时候,有光标让你选择人物的这一个地方的刷新在哪里?比如物品刷新  是有 def update_item       这样。。。。但是我没找到装备的刷新= = 而且,装备好像直接从选择了人物之后才开始刷新的!!!
    装备刷新是def update_right这样= =。。。。。。。。我想在这个刷新里用case循环掩盖之都没地方找= = [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: IamI    时间: 2009-2-1 21:46
听不懂= =点击装备以后焦点移动到Window_MenuStatus,然后才进入Scene_Equip
还有很多Selectable要分清楚Update和Refresh哦~
在讲清楚一点= =
作者: 一醉倾城    时间: 2009-2-1 21:52
     比如说仙术的刷新是这样,我用了一个CASE图片循环掩盖光标进行选择,注意被#包起来的部分,其他的这样循环都可以了,问题是装备的循环我找不到的样子,他好像直接从def update_right这个开始循环,而没有如技能的def update_skill这样的主菜单的刷新。。。。。。。。。。

  1.   def update_skill
  2. #####################################
  3. case @status_window.index
  4.     when 0
  5.       @arrow_status.x = 28
  6.       @arrow_status.y = 47
  7.     when 1
  8.       @arrow_status.x = 28+124
  9.       @arrow_status.y = 47
  10.     when 2
  11.       @arrow_status.x = 28+124+124
  12.       @arrow_status.y = 47
  13.     when 3
  14.       @arrow_status.x = 28+124+124+124
  15.       @arrow_status.y = 47
  16.       end
  17. ###################################     
  18.    
  19.    
  20.     # 按下 B 键的情况下
  21.     if Input.trigger?(Input::B)
  22.       @arrow_status.visible = true
  23.       # 演奏取消 SE
  24.       $game_system.se_play($data_system.cancel_se)
  25.       # 切换到菜单画面
  26.       @skill_help_window.dispose
  27.       @skill_window.dispose
  28.       @skill_window_icon.dispose
  29.       @skill_update = false
  30.       @status_window.active = true
  31.       @status_window.index = @window_index
  32.       return
  33.     end
  34.     # 按下 C 键的情况下
  35.     if Input.trigger?(Input::C)
  36.       @arrow_status.visible = false
  37.       # 获取特技窗口现在选择的特技的数据
  38.       @skill = @skill_window.skill
  39.       # 不能使用的情况下
  40.       if @skill == nil or not @actor.skill_can_use?(@skill.id)
  41.         # 演奏冻结 SE
  42.         $game_system.se_play($data_system.buzzer_se)
  43.         return
  44.       end
  45.       # 演奏确定 SE
  46.       $game_system.se_play($data_system.decision_se)
  47.       # 效果范围是我方的情况下
  48.       if @skill.scope >= 3
  49.         # 激活目标窗口
  50.         @skill_window.active = false
  51.         @status_window.active = true
  52.         # 设置效果范围 (单体/全体) 的对应光标位置
  53.         if @skill.scope == 4 || @skill.scope == 6
  54.           @status_window.index = -1
  55.         elsif @skill.scope == 7
  56.           @status_window.index = @actor_index - 10
  57.         else
  58.           @status_window.index = 0
  59.         end
  60.       # 效果在我方以外的情况下
  61.       else
  62.         # 公共事件 ID 有效的情况下
  63.         if @skill.common_event_id > 0
  64.           # 预约调用公共事件
  65.           $game_temp.common_event_id = @skill.common_event_id
  66.           # 演奏特技使用时的 SE
  67.           $game_system.se_play(@skill.menu_se)
  68.           # 消耗 SP
  69.           @actor.sp -= @skill.sp_cost
  70.           # 再生成各窗口的内容
  71.           @skill_window.refresh
  72.           @status_window.refresh
  73.           @skill_help_window.dispose
  74.           @skill_window.dispose
  75.           @skill_window_icon.dispose
  76.           @back_skill.dispose
  77.           # 切换到地图画面
  78.           $scene = Scene_Map.new
  79.           return
  80.         end
  81.       end
  82.       return
  83.     end
  84.   end
复制代码

作者: 一醉倾城    时间: 2009-2-1 22:58
    没人知道吗?
作者: Quarcy    时间: 2009-2-1 23:18
我也看不明白你在說甚麼--
道理上是這樣的:

                                  { when 0 物品 -> Scene_Item
Scene_Menu -> 循環 update_command { when 1 特技 }                        {
                                  { when 2 装备 }-> 循環 update_status -> {
                                  { when 3 状态 }                         {
                                  { when 4 存档 -> Scene_Save
                                  { when 5 游戏结束 -> Scene_End
[LINE]1,#dddddd[/LINE]
{Scene_Skill   -> 循環 update_skill B -> Scene_Menu
                                   C -> 循環 update_target -> 返回update_skill
{Scene_Equip   -> 循環 update_right B -> Scene_Menu
                                   C -> 循環 update_item -> 返回update_right
{Scene_Status  B -> Scene_Menu

「update_status」是選擇人物的部分 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: ONEWateR    时间: 2009-2-2 00:01
以下引用一醉倾城于2009-2-1 13:41:34的发言:

本贴悬赏额度如下:VIP:0   积分:100   
    有光标让你选择人物的这一个地方的刷新在哪里?


Window_MenuStatus

其他看不懂 {/fd}


作者: ★_茄孓    时间: 2009-2-2 00:23
RMXP,$scene的update方法才刷新,如果没有放在这里面窗口里的刷新方法没调用也不行
所以都是把窗口里的刷新放在Scene_Equip的update刷新,你自己看看吧`
作者: 一醉倾城    时间: 2009-2-2 02:05
    我终于找到了,多谢Quarcy前辈,还有虽然看不懂其他前辈的答案依然谢谢了,我看了Quarcy前辈的列表突然茅舍顿开{/cy}
    真是的,只是差了一个字符而已。。= =




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