这是我的代码,我不知道如何创建启动画面以及它将如何引导到我的菜单屏幕中。所有 .h 都必须连接到 BaseScreen 并且 BaseScreen 将是 cocos2d 层中连接的那个。请在我的代码中帮助我。唯一出现在我的模拟器中的是我在 HelloWorldScreen.h 中编码的精灵
闪屏.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