用CCRenderTexture就可以了,不知是否有更好的方法。

if (!miniMap) {

        miniMap=CCSprite::create();

        miniMap->setZOrder();

        CCDirector::sharedDirector()->getRunningScene()->addChild(miniMap);

    }

    miniMap->setVisible(false);//设为false后在visit的时候就不会画到CCRenderTexture里了

    CCPoint sPoint=mScene->getPosition();

    CCRenderTexture *tex=CCRenderTexture::create(, );

    tex->setPosition(sPoint);

    tex->begin();

    CCDirector::sharedDirector()->getRunningScene()->visit();

    tex->end();

    miniMap->setDisplayFrame(tex->getSprite()->displayFrame());

    tex->release();

    miniMap->setPosition(x,y);

    miniMap->setScale(0.125);

    miniMap->setVisible(true);

可以在没一帧更新的时候做个判断,如果有运动,就绘制,减少不必要的绘图。

05-13 10:15