2

我正在开发一个应该具有恒定高度(480.0)的游戏,因为所以我在下面编写了该代码..它的问题是我的精灵表功率为 2s 用于 sd 这里是普通图像,用于高清 -双倍尺寸和 iPad 视网膜 - 大 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