어떻게 Cocos2D 게임 에서 A * 길 찾기 알고리즘 을 실현 합 니까 (3)

판다 돼지 · 후 페 오리지널 또는 번역 작품 입 니 다. 리 트 윗 을 환영 합 니 다. 리 트 윗 은 출처 를 밝 혀 주세요. 잘 못 썼 다 고 생각 되면 알려 주세요. 괜 찮 으 면 많이 응원 해 주세요. 좋아요! 감사합니다!hopy ;)
면책 설명: 본 블 로그 가 제공 하 는 모든 번역 글 원 고 는 인터넷 에서 나 왔 으 며 학습 교류 용 으로 만 제공 되 며 상업 적 용도 로 사용 하지 마 십시오.동시에 전재 할 때 본 설명 을 제거 하지 마 세 요.만약 에 어떠한 분쟁 이 발생 하면 본 블 로그 의 모든 사람, 이 번역 원 고 를 발표 하 는 사람과 아무런 관계 가 없다.협조 해 주 셔 서 감사합니다!
열 림 과 닫 기 목록 만 들 기
다음 에 우 리 는 두 개의 NSMutableArray 를 사용 하여 우리 의 개방 과 닫 힌 목록 을 추적 하여 저장 할 것 입 니 다.
너 는 왜 NSMutable Set 로 대체 하지 않 는 지 이상 할 것 이다. 그래, 여기에 두 가지 이유 가 있다.
  • NSMutableset 은 질서 가 없 지만, 목록 을 빨리 찾기 위해 F 값 으로 정렬 하고 싶 습 니 다.
  • NSMutableset 은 Shortest Path Step 류 의 isEqual 방법 으로 두 요소 가 같은 지 테스트 하지 않 습 니 다. (그러나 우 리 는 그것 이 필요 합 니 다)
  • CatSprite. h 에 이 배열 의 정 의 를 추가 합 니 다.
    @interface CatSprite : CCSprite {
        //...
    
    @private
        NSMutableArray *spOpenSteps;
        NSMutableArray *spClosedSteps;
    }

    그리고 CatSprite. m 에서 다음 과 같이 수정 합 니 다.
    // Add to top of file
    // Private properties and methods
    @interface CatSprite () 
    @property (nonatomic, retain) NSMutableArray *spOpenSteps;
    @property (nonatomic, retain) NSMutableArray *spClosedSteps;
    @end
    
    // Add after @implementation CatSprite
    @synthesize spOpenSteps;
    @synthesize spClosedSteps;
    
    // Add inside initWithLayer
    self.spOpenSteps = nil;
    self.spClosedSteps = nil;
    
    //Add dealloc method to CatSprite
    - (void)dealloc
    {
        [spOpenSteps release]; spOpenSteps = nil;
        [spClosedSteps release]; spClosedSteps = nil;
        [super dealloc];
    }
      :           ,                              ,                         ;)    .

    좋은 웹페이지 즐겨찾기