Project1

标题: 选择窗口中,按C键确认的问题 [打印本页]

作者: hitlerson    时间: 2008-4-4 07:03
标题: 选择窗口中,按C键确认的问题
自己写的个连续的选择窗口的脚本

⑴ def start_window_update                   #流程选择刷新
    if Input.trigger?(Input::B)
      start_phase2
      return
    end
    if Input.trigger?(Input::C)
        start_kapai_select
      return
    end
  end

⑵ def start_kapai_select_update         
    @kapai_select_window.update
   
    if Input.trigger?(Input::B)
      end_kapai_select
      return
    end
    if Input.trigger?(Input::C)
      start_kapai_xingtai
      return
    end
  end

就是按下 ⑴ 里这个C键,会到 ⑵ 页面,再要求选择按下C键后,才能再继续。
但是我好象现在案一下C键就连第二个的C也完成了,直接到运行start_kapai_xingtai
了。因为我把第二个的(Input::C)换成(Input::A)试过,是案下C,再按下A
请问为什么会出现这样的问题?程序哪里有问题
作者: lldjjf    时间: 2008-4-4 07:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: wy29    时间: 2008-4-4 07:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: hitlerson    时间: 2008-4-4 07:46
Scene 的MAIN里有个Input.update了,还要加啊?
还有,我加在@kapai_select_window.update之后,发现是不跳下去了,不过按键也没反应了,是什么问题?
作者: hitlerson    时间: 2008-4-4 07:51
我查的瞒仔细了,应该没有的吧,一部完成什么的
  def start_window                            #显示流程画面
    @party_command_window.active = false
    @party_command_window.visible = false
    @start_command_window.active = true
    @start_command_window.visible = true
    @start_command_window.index = 0
  end
  
  def start_kapai_select                       #开始卡牌选择画面
    @start_command_window.active = false
    @start_command_window.visible = false
    @kapai_select_window.active = true
    @kapai_select_window.visible = true
    @kapai_select_window.index = 0
  end
  
  def end_kapai_select                         #结束卡派选择画面
    @kapai_select_window.active = false
    @kapai_select_window.visible = false
    @start_command_window.active = true
    @start_command_window.visible = true
  end
  
  def start_kapai_xingtai                       #开始形态选择画面
    @kapai_select_window.active = false
    @kapai_select_window.visible = false
    @kapai_xingtai_select_window.active = true
    @kapai_xingtai_select_window.visible = true
    @kapai_xingtai_select_window.index = 0
  end
  
  def end_kapai_xingtai                         #结束形态选择画面
    @kapai_xingtai_select_window.active = false
    @kapai_xingtai_select_window.visible = false
    @kapai_select_window.active = true
    @kapai_select_window.visible = true
  end

  def update_phase3                        # phase3主刷新   
    if @start_command_window.active
      start_window_update
    end
    if @kapai_select_window.active
      start_kapai_select_update
    end
    if @kapai_xingtai_select_window.active
      start_kapai_xingtai_update
    end
   
   
  end


  def start_window_update                   #流程选择刷新
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      start_phase2
      return
    end
    if Input.trigger?(Input::C)
      $game_system.se_play($data_system.decision_se)
      case @start_command_window.index
      when 0                   # 流程一
        $game_system.se_play($data_system.decision_se)
        start_kapai_select
      when 1                   #攻击回合
      
      when 2                   #流程3
        
      when 3                   #结束回合
        start_phase4
      end
      return
    end
  end

  def start_kapai_select_update            #卡派选择刷新
    @kapai_select_window.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      end_kapai_select
      return
    end
    if Input.trigger?(Input::C)
      $game_system.se_play($data_system.decision_se)
      start_kapai_xingtai
      return
    end
  end
  
  def start_kapai_xingtai_update                   #卡牌形态刷新
    @kapai_xingtai_select_window.update
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      end_kapai_xingtai
      return
    end
    if Input.trigger?(Input::C)
      $game_system.se_play($data_system.decision_se)
        #start
      return
    end
  end
作者: wy29    时间: 2008-4-4 08:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: hitlerson    时间: 2008-4-4 08:19
谢你的指点了,我发现在判断C键的IF语句里,最后的RETURN前加上Input.update能解决这个问题。不过我的疑问是:
1。我的B键好象就没有这个毛病
2。main里有个input.update,估计B键好使是有这句的关系,为什么C键就没用?
3。Party_Command_window是原始战斗脚本的代码,也没这个毛病。
   而我也只是套用系统的Skill_window和window_command做的就有毛病
还是找不出问题的根源觉得
作者: hitlerson    时间: 2008-4-4 08:22
我是想修改战斗成游戏王的样子,哈哈。
这个在一个def里判断所有的窗口是否有效,有效就刷新是和原始战斗脚本学的,应该没太大问题吧?
作者: wy29    时间: 2008-4-4 09:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: 禾西    时间: 2008-4-4 10:56
How about this?
  1. def update_phase3                        # phase3主刷新   
  2.   if @start_command_window.active
  3.     start_window_update
  4.     return
  5.   end
  6.   if @kapai_select_window.active
  7.     start_kapai_select_update
  8.     return
  9.   end
  10.   if @kapai_xingtai_select_window.active
  11.     start_kapai_xingtai_update
  12.     return
  13.   end
  14.   
复制代码

作者: hitlerson    时间: 2008-4-5 03:57
果然,呵呵




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