2011-08-12 4 views
2

스케일 된 스프라이트로 생성 된 일부 메뉴 버튼을 장면에서 올바르게 배치하는 방법을 알 수 없습니다.Cocos2d, CCMenuSprite, 스케일링 및 위치 지정 문제

스프라이트를 만들고 크기를 조정하고 위치를 설정하면 모두 잘됩니다.

스프라이트를 만들면 크기를 조절하고 위치를 설정 한 다음 스프라이트를 사용하여 왼쪽과 아래쪽으로 모두 이동되는 CCMenuItemSprite를 만듭니다.

스프라이트를 크리트로 만들었다면 스프라이트를 사용하여 CCMenuItemSprite를 만들고, 메뉴 항목의 크기를 조정하고, 메뉴 항목 위치를 설정합니다. 모든 항목이 오른쪽 위로 이동합니다.

이러한 모든 설정은 동일한 배율 요소와 중심점 좌표로 수행됩니다.

무엇이 부족합니까 ??

감사합니다.

EDIT : SOLVED !!

나는 그것을 알아 냈다! 메뉴의 좌표계가 작동하는 방식과 메뉴의 크기가 조정될 때 반응하는 방식 때문이었습니다.

지금 당장은이 문제에 대해 올바른 접근법을 취하지 않고 있습니다. 매우 가능성이 높습니다. 또는 모든 시스템이 어떻게 생각되는지 까다로울 수 있습니다.

최대한 빨리 자습서를 작성합니다. 다시

감사합니다 : D

답변

0

나는 이것은 매우 오래된 질문 알지만, 난 그냥 (내가 도움이 희망) 여기 나에게 무슨 일이 있었는지 공유하기를 원해요. 나는이 문제에서 설명한 것과 동일한 문제를 가지고 있으며, @mokagio는 메뉴의 통합 시스템이 어떻게 작동하는지에 관해서 문제가 있다고 말했다.

처음에는 Sprite와 MenuItemSprite를 만들었지 만 올바르게 배치 할 수 없었습니다. 그런 다음 MenuItemSprite를 기반으로하는 모든 비율 조정 및 위치 지정을 수행해야하며 스프라이트가 아닌 모든 작업이 정상적으로 수행되어야한다는 것을 깨달았습니다. 내가 사용

코드이었다

또한
CCPoint backButtonPosition; 
CCSprite *backButtonSprite = CCSprite::createWithSpriteFrameName("Back.png"); 
CCMenuItemSprite *backButton = CCMenuItemSprite::create(backButtonSprite, backButtonSprite, this, menu_selector(MyMenuClass::buttonPressedCallback)); 

// Do all the scaling and positioning using the CCMenuItemSprite and not the CCSprite 
backButton->setScale(0.5); 
backButtonPosition = ccp(backButton->boundingBox().size.width/2, screenSize.height - backButton->boundingBox().size.height/2); 

// Position the button, but first convert the world coordinates to the parent menu local coordinates 
backButton->setPosition(categorySelectMenu->convertToNodeSpace(backButtonPosition)); 
categorySelectMenu->addChild(backButton); 

,이 좌표 시스템과 세계 좌표계하지 메뉴에 따라 버튼의 위치를 ​​설정하는 것이 중요합니다 점에 유의하시기 바랍니다.