Wie erstelle ich einen Android Cocos2DX Splash Screen?

Dies ist mein Code. Ich weiß nicht, wie ich einen Begrüßungsbildschirm erstellen soll und wie er in meinem Menübildschirm angezeigt wird. Alle .h müssen mit BaseScreen verbunden sein und der BaseScreen wird mit der cocos2d-Ebene verbunden. Bitte hilf mir in meinen Codes. In meinem Emulator wird nur das Sprite angezeigt, das ich in HelloWorldScreen.h codiere

SplashScreen.h

ifndef __SPLASH_SCREEN_H__
define __SPLASH_SCREEN_H__

include "BaseScreen.h"
include "cocos2d.h"

class SplashScreen : BaseScreen 
{
public:
void update ();
static cocos2d::CCSprite* splashScreen;
int time;
MenuScreen menuScreen;
};
endif

HelloWorldScene.cpp

include "HelloWorldScene.h"
include "SplashScreen.h"
include "cocos2d.h"

USING_NS_CC;

CCScene* HelloWorld::scene()
{
// 'scene' is an autorelease object
CCScene *scene = CCScene::create();

// 'layer' is an autorelease object
HelloWorld *layer = HelloWorld::create();

// add layer as a child to scene
scene->addChild(layer);

// return the scene
return scene;
}

// on "init" you need to initialize your instance
bool HelloWorld::init()
{

// 1. super init first
if ( !CCLayer::init() )
{
    return false;
}

CCSize winSize = CCDirector::sharedDirector()->getWinSize();
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();


// 2. add a menu item with "X" image, which is clicked to quit the program
//    you may modify it.

// add a "close" icon to exit the progress. it's an autorelease object
CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
                                    "CloseNormal.png",
                                    "CloseSelected.png",
                                    this,
                                    menu_selector(HelloWorld::menuCloseCallback));

pCloseItem->setPosition(ccp(origin.x + visibleSize.width -                       pCloseItem->getContentSize().width/2 ,
                            origin.y + pCloseItem->getContentSize().height/2));

// create menu, it's an autorelease object
CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu, 1);


// 3. add your codes below...

// create background image from png
    CCSprite *splashScreen = CCSprite::create("company.png");
    // position the background image at the center of window
    splashScreen->setPosition(ccp(size.width / 2, size.height / 2));


    // add background image at z-position = -1, bottom of all
    this->addChild(splashScreen, -1);

    // calculate the scaling factor to fill the window size
    float bX = size.width / splashScreen->getContentSize().width;
    float bY = size.height / splashScreen->getContentSize().height;

    // set the scaling factor to the background image
    splashScreen->setScaleX(bX);
    splashScreen->setScaleY(bY);

return true;
}


//callfuncN_selector(MainScene::spriteMoveFinished)
//backcalls the function spriteMoveFinished()
void HelloWorld::spriteMoveFinished(CCNode* pSender)
{
CCSprite *sprite = (CCSprite *)pSender;
this->removeChild(sprite, true);
}


void HelloWorld::menuCloseCallback(CCObject* pSender)
{
CCDirector::sharedDirector()->end();

if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(0);
endif
}

BaseScreen.h

ifndef __BASE_SCREEN_H__
define __BASE_SCREEN_H__

include "cocos2d.h"

class BaseScreen : public cocos2d::CCLayer
{
public:
//  BaseScreen getParent ();
void loadNewScreen (BaseScreen newScreen);
void update ();
//  BaseScreen *parentBaseScene;
};
endif

Antworten auf die Frage(4)

Ihre Antwort auf die Frage