Visual Studio 2012を使用したWindows OpenGLシミュレーターのみでの長時間の開発の後、480/320の画面サイズでテストする必要があるように見えました
CCSize screenSize = pEGLView->getFrameSize();
CCSize designSize = CCSize(320, 480);
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionShowAll);
if (screenSize.width > 640) {
CCFileUtils::sharedFileUtils()->addSearchPath("ipadhd");
pDirector->setContentScaleFactor(1280/designSize.width);
} else if (screenSize.width > 320) {
CCFileUtils::sharedFileUtils()->addSearchPath("ipad");
pDirector->setContentScaleFactor(640/designSize.width);
} else {
CCFileUtils::sharedFileUtils()->addSearchPath("iphone");
pDirector->setContentScaleFactor(320/designSize.width);
}
そして、画像をロードするこの関数を使用して
void GameLayer::loadImages()
{
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("sprites35.plist");
m_gameBatchNode = CCSpriteBatchNode::create("sprites.png",200);
this->addChild(m_gameBatchNode,2,kSSheet);
m_background = CCSprite::create("gride300_300.png");
m_background->setPosition(ccp(m_winSize.width/2,m_winSize.height/2));
this->addChild(m_background,kGrid);
}
私のデバイス (iPhone 5) で最初にアプリを実行したとき、画像のすべてのサイズが 1/3 小さくなり、位置がすべて間違っていました。
私の質問は、オープンGLシミュレーターを使用してWindowsで開発し、iPhone 5
UPDATE
ですべてのものを正しく表示するにはどうすればよいか
です。たとえば、サイズが297 x 297ピクセル(1.00)の背景画像があります。それはこのように:
m_background = CCSprite::create("gride300_300.png");
m_background->setPosition(ccp(m_winSize.width/2,m_winSize.height/2));
this->addChild(m_background,kGrid);
シミュレーターでは見栄えがします。でもiPhoneで見ると真ん中にあるけどとても小さい。シミュレーターとは違う
2 番目の例:
サイズが 35 x 35 ピクセル (1.00) の丸い宝石を配置し、それぞれを中央に配置します。シミュレーターではすべて見栄えがしますが、iPhone で見ると、再び非常に小さく
整列します。画面の左下に
、gem を配置するコードを次に示します。
void Gem::placeInGride()
{
CCSpriteBatchNode *spriteBatchNode = (CCSpriteBatchNode*) getGameController()->getGameLayer()->getChildByTag(kSSheet);
int gemSelect =(rand() % totalGemsAvailable) + 1;
GemType gemNum;
gemNum =(GemType)gemSelect;
setGemState(kGemNew);
char spritename[20];
sprintf(spritename,"gem%i_tranc.png",gemNum);
setImageName(spritename);
setGemType(gemNum);
char spriteid[20];
sprintf(spriteid,"gem_%i_%i",getRowNum(),getColNum());
std::string gemid(spriteid);
setGemId(spriteid);
mySprite = CCSprite::createWithSpriteFrameName(spritename);
mySprite->setOpacity(255);
spriteBatchNode->addChild(mySprite, 2);
CCSize sSize = mySprite->getContentSize();
setGemPosition(setPositionForGem(getRowNum(),getColNum(),sSize));
}
CCPoint Gem::setPositionForGem(int row,int col,const CCSize& gemSize)
{
float leftPadding = 30 ;
float rightPadding = 37.5 ;
float topPadding = 111.5;
float buttonPadding = 90;
float gemHight = gemSize.height;
float gemWidth = gemSize.width;
float x = (leftPadding+1) + ((gemWidth+2)*(col));
float y = (topPadding+1) + ((gemHight+2)*(row/*+1*/));
return ccp(x,y) ;
}
iPhone と Windows の両方のスクリーン ショットを添付する