질문과 답변

Extra Form
  #--------------------------------------------------------------------------
  # ● 選択項目のコマンドデータを取得(선택된 항목 대한 명령 데이터를 검색)
  #--------------------------------------------------------------------------
  def current_data
    index >= 0 ? @list[index] : nil
  end
  #--------------------------------------------------------------------------
  # ● 選択項目の有効状態を取得
  #--------------------------------------------------------------------------
  def current_item_enabled?
    current_data ? current_data[:enabled] : false
  end
  #--------------------------------------------------------------------------
  # ● 選択項目のシンボルを取得(선택 항목의 기호를 가져옵니다)
  #--------------------------------------------------------------------------
  def current_symbol
    current_data ? current_data[:symbol] : nil
  end



1. current_data 메소드 정의 중 index라는 글자가 보입니다. 이게 뭔가해서 p index; p index.class라는 명령어를 임의로 삽입하여 알아보니 Fixnum클래스의 오브젝트이며 그 값이 커서 위치를 가리키고 있다는 사실을 알았습니다. 근데 이 값이 어디서부터 왔을까 검색해보니, 아마도 

class Window_Selectable < Window_Base
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_reader   :index                    # カーソル位置(커서 위치)
에서 온 거 같긴 합니다만, 이 Window_Selectable 클래스의 인스턴스 변수인 index가 저 위의 current_data 메소드에 쓰인 index와 일치하는 건가요? 만약 일치하지 않는다면, current_data 내의 index는 대체 어디에서 값을 입력받고 있는 건가요? 만약 일치한다면, 다른 클래스 내의 인스턴스 변수를 저런 식으로 사용하는 게 가능한 건가요? 어떤 클래스의 인스턴스 변수를 쓰려면,
a=Window_Selectable.new
a.index
이런 식으로 사용해야하는 거 아닌가요.

2.  def current_symbol
    current_data ? current_data[:symbol] : nil
   end
이 부분에서 current_data 메소드가 참의 값을 리턴할 경우, current_symbol는 최종적으로 current_data[:symbol]를 리턴한다는 의미라는 건 알겠습니다. 근데 대괄호가 쓰인 걸보니 current_data가 배열 오브젝트가 아닌가 싶은데, current_data라는 이름의 배열 오브젝트가 선언된 곳이 아무리 찾아봐도 없네요. 그리고  [:symbol]은 대체 무슨 의미인지 모르겠습니다. 콘솔창으로 확인해보니, 위의 메소드는 윈도우 상에서 결정키로 커맨드를 선택, 실행했을 때 실행되던데요. 그렇다면 리턴되어야하는 심볼이 각 커맨드마다 정해져있는 거 아닌가요? 아이템 커맨드를 선택했다면 :item, 저장 커맨드를 선택했다면 :save 이런 식으로요. 근데 이건 그냥 :symbol을 리턴해버리니, 이 동작이 이후에 어떻게 본래의 심볼들하고 연결되는지 모르겠습니다. 

알려주시면 정말 감사하겠습니다.
Comment '2'
  • profile
    습작 2013.07.20 22:06

    1.

    class Window_Command < Window_Selectable


      위와같이 Window_Command는 Window_Selectable를 상속했기 때문에 재정의되지 않은 메소드에 대해서는 그대로 이어받습니다. Window_Command에서의 index는 Window_Selectable의 것이 맞습니다.


    a=Window_Selectable.new
    a.index

      Window_Command에서 Window_Selectable의 내용을 사용하는 것이므로 위와 같이 사용하는 것과는 별개의 이야기라고 할 수 있습니다.


    2.

      def current_symbol

        current_data ? current_data[:symbol] : nil

      end


      def current_data

        index >= 0 ? @list[index] : nil

      end


      def add_command(name, symbol, enabled = true, ext = nil)

        @list.push({:name=>name, :symbol=>symbol, :enabled=>enabled, :ext=>ext})

      end


      위 내용을 쭉 보시면 알 수 있듯이 current_symbol는 인스턴스 변수 @list 배열의 현재 index에 위치한 해쉬에서 키값이 :symbol인 것을 가리키는 것을 알 수 있습니다.


    current_symbol

    current_data[:symbol]


    @list[index][:symbol]


    {:name=>name, :symbol=>symbol, :enabled=>enabled, :ext=>ext}

     

      커맨드 추가할때 입력했던 :item, :save 등과 :symbol는 모두 같은 심벌이긴 합니다만, 이것들은 키값이 아닌 :symbol이라는 이름의 키값에 대응하는 것들이기 때문에 값을 찾지 못한 것이라고 할 수 있습니다.


      아무쪼록 도움이 되었길 바랍니다.^^

  • ?
    일단 2014.01.15 06:18

    제가 답변을 확인하지 못해서 죄송합니다.
    그리고 답변 달아주셔서 감사합니다.

    제 기억으로는 아마 스스로 해결해서 답변이 있는지 없는지조차 확인하지 않은 거 같네요.

    달아주신 자세한 답변이,

    스크립트를 공부하시는 다른 분들에게 도움이 될 것이라고,
    분명히 생각합니다.


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12451
RMVXA 타일셋이 이상해요... 3 file 푸른사신 2013.01.14 943
RMVXA 커맨드 입력받아서 그림 삭제하기 2 IZEN 2013.04.02 943
RMVXA XAS 방패에 따라 막지못하는 공격을 어떻게 만들어요? 2 미스터h 2014.02.20 943
RMVXA 활을 무기로 사용할 수 있는 가능성에 대해 질문드립니다. 7 BioVerLord 2013.06.12 942
RMVXA 이벤트 처리시 플레이어가 움직이지 않도록 못하나요? 7 알만툴 2012.12.25 942
RMVXA rpgvxace 합성 스크립트 적용법좀요.. 6 CJY 2014.01.04 942
RMVXA 스킬 계산식 쓸떄 어디까지 가능한가요? 2 아이어리이 2013.09.13 941
RMVXA [해결]전투 중 액터의 이미지가 표시되지 않습니다. CP's Battle Engine 스크립트 모드 3 7 file 풍지 2014.01.22 940
RMVXA RPGVXACE 타이틀 화면없이 시작하는법. 2 카로 2013.01.25 939
RMVXA 게임 내에서 영상 재생 시작하자마자 팅깁니다 . 2 DevilEx 2013.07.06 939
RMVXA 전투 배경화면 돌아가는건 무슨 현상인가요 7 file 아이어리이 2013.09.11 939
RMVXA 맵칩을 적용하고 싶은데 계속 빨간색으로 표시되네요 4 리리스오브 2014.01.05 939
RMVXA 타일셋 투명하게 설정도 했는데 자꾸 뭔가 남아요 ㅠㅠ.... 4 file 젤라또 2014.10.04 939
RMVXA 스킬장착 스크립트 질문. 2 file 꼭해볼테다 2013.10.20 937
RMVXA vx ace 기본스크립트 Window_Command의 분석 중 일부 질문.. 2 일단 2013.07.19 937
RMVXA 경험치북? 더불어 스킬북? 4 글쎄,왜 난 적용이 안될까? 2013.06.09 936
RMVXA 전투시 특정 캐릭터만 공격을 못하게 하고 싶습니다. 3 qjsu 2013.09.27 936
RMVXA ㅋ...크리하다Ace 2 고독art 2013.03.15 935
RMVXA 스크립트 적용하는법을 알려주세요 17 file 비켜비켜 2013.02.22 935
RMVXA rpgvxace 아무것도없는곳에서 이벤트후 건물 생성(짓기) 6 CJY 2014.01.04 935
Board Pagination Prev 1 ... 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ... 149 Next
/ 149