2014-05-17 2 views
3

어떻게 상대 경로로 스프라이트를 만들 수 있습니까?cocos2d-x 3.0 - 상대 경로로 스프라이트 만들기

  • 이 디렉토리의
  • HD
  • ....

하나는 으로 자원이 있어야 할 장소를 설정 SD : 나는 같은 Resources 디렉토리에 여러 개의 폴더가 의미 올려다 본다 :

std::vector<std::string> resDirOrders; 
if (device is hd) 
     resDirOrders.push_back("hd") 
FileUtils::getInstance()->setSearchResolutionsOrder(resDirOrders); 

이제 각각의 abov

  • intro_popup 다음에
  • outro_popup
  • main_menu
  • top_bar
  • 게임 내
  • ....

: 전자 언급 한 디렉토리가 나는 등 다른 디렉토리 많이 가지고 디렉토리에 이미지를 놓습니다. 그리고 이미지 이름은 서로 충돌 할 수 있습니다. 은 main_menu이고, top_baringame이며 다른 이미지입니다. 지금까지이 스프라이트를 만들 수 있기를 원합니다.

Sprite::create("ingame/coin.png"); 
Sprite::create("top_bar/coin.png"); 

그러나 작동하지 않습니다. 그냥 coin.png 파일을 찾지 못했습니다.

어떻게이 문제를 해결해야합니까? 나는 cocos2d-x 3.0으로 Windows에 있지만 iOS와 Android에서도 처리되어야합니다.

답변

5

폴더 구조는 다음과 같이해야합니다 :

Res/ 
----hd/ 
----sd/ 
----ingame/ 
    ----hd/ 
    ----sd/ 
----top_bar/ 
    ----hd/ 
    ----sd/ 

당신은 프로젝트에 입술 폴더를 추가하고 체크 "추가 된 폴더에 대한 폴더를 참조 만들기"있는지 확인해야합니다.

설정 검색 경로 및 검색 해상도 순서 :

Size screenSize = Director::getInstance()->getOpenGLView()->getFrameSize(); 

std::vector<std::string> resDirOrders; 

std::vector<std::string> searchPaths = FileUtils::getInstance()->getSearchPaths(); 
searchPaths.insert(searchPaths.begin(), "Res"); 
FileUtils::getInstance()->setSearchPaths(searchPaths); 

if (screenSize.width > 1024) { 
    resDirOrders.push_back("hd"); 
} 
else{ 
    resDirOrders.push_back("sd"); 
} 

FileUtils::getInstance()->setSearchResolutionsOrder(resDirOrders); 

는 그런 다음 Sprite::create("ingame/coin.png");

+0

와 스프라이트를 만들 수 있습니다 당신에게 사람을 감사드립니다. 너는 내 목숨을 구했다. 왜이 작업이'setSearchResolutionsOrder'가 이미지 이름 바로 앞에있는 이미지의 경로 사이에 삽입되는 디렉토리인지 확인하십시오. 그렇지 않습니까? – Narek

관련 문제