2

私は一定の高さ(480.0)を持つべきゲームに取り組んでいます。そのため、以下にそのコードを書きました..問題は、sdのスプライトシートのパワーが2秒であることです。これは、hdの通常の画像です- 2 倍のサイズ、iPad Retina 用 - 4 倍の大きさ。したがって、この場合、シーン画像からスプライトを描画すると、正しく描画されません..そして、それは CCSpriteFrame が CC_ContentScaleFactor() を使用して画像のフレームを計算し、間違ったフレームをカットするためだと思います..

誰かがそれを解決する方法を知っていますか? :?

CCSize designResolutionSize = CCSize(320,480);
CCDirector* pDirector = CCDirector::sharedDirector();
CCEGLView* pEGLView = CCEGLView::sharedOpenGLView();

pDirector->setOpenGLView(pEGLView);

pEGLView->setDesignResolutionSize(designResolutionSize.width,
                                  designResolutionSize.height,
                                  kResolutionFixedHeight);

CCSize size = CCEGLView::sharedOpenGLView()->getFrameSize();

std::vector<std::string> res;
if(size.width >= 2048 || size.height >= 2048){
    res.push_back("ipadhd");
}
else if(size.width >= 960 || size.height >= 960){
    res.push_back("hd");
}
else {
    res.push_back("sd");
}

CCFileUtils::sharedFileUtils()->setSearchPaths(res);
CCDirector::sharedDirector()->setContentScaleFactor(size.height / designResolutionSize.height);

ありがとう、ジョージ..

4

0 に答える 0