0

cocos2d-xで困ったことがあり、一人では解決できないかもしれませんので、よろしくお願いします。cocos2d-x の学習の一環として、CCLayer を使用して独自の CCScene を作成したいと考えていました。シーンのサイズを除いて、すべてが正常に機能しています。CCDirector::sharedDirector()->getWinSize() は、 0 x 108134400のように解像度が完全に台無しになっていることを報告します...そして、何が間違っているのかわかりません。

これが私のクラスです

.h
#pragma once
#include "cocos2d.h"

class zfGameScene : public cocos2d::CCLayer
{
public:
    static cocos2d::CCScene* scene();
    virtual bool init();
    CREATE_FUNC(zfGameScene);
};

ああああ

.cpp
#include "zfGameScene.h"
#include "cocos2d.h"

using namespace cocos2d;

CCScene* zfGameScene::scene(){
CCScene * scene = NULL;
    do 
    {
     scene = CCScene::create();
        CC_BREAK_IF(! scene);

        zfGameScene *layer = zfGameScene::create();
        CC_BREAK_IF(! layer);

        scene->addChild(layer);
    } while (0);

    return scene;
}

bool zfGameScene::init(){
    bool returnValue = false;
    while(!returnValue){
        CC_BREAK_IF(!CCLayer::init());

        // This one is for loading the scene :P
        CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    CCLog("[zfGameScene] Initialising with %d x %d...", winSize.width, winSize.height);

        CCSprite *background = CCSprite::spriteWithFile("background.png", CCRect(0, 0, 2048, 1536));
        this->setScale(1);
        this->setPosition(ccp(0, 0));
        this->addChild(background);

        returnValue = true;
    }

    return returnValue;

}

よろしくお願いします。

4

1 に答える 1

0

幅と高さはフロートです。次のようにコードを変更するだけです。

CCLog("[zfGameScene] Initialising with %f x %f...", winSize.width, winSize.height);
于 2012-10-22T16:14:16.497 に答える