cocos2d-x创建精灵
来源:未知 责任编辑:责任编辑 发表时间:2013-12-06 08:43 点击:次
sprite我暂时简单理解为一个可以移动的实体,随便什么都可以,就是一张贴图,移动,不过可以变换动作(另一张贴图)。
p>吐槽一下:cocos2d-x的C++代码写的不是很严谨。
p>下面我们来看下创建的基本流程:
p>[cpp]
p>class HelloWorld : public cocos2d::CCLayerColor
p>
p>我们的HelloWorld继承CCLayerColor,为毛不是CCLayer呢,因为根据教程上将 我们酱紫可以设置背景色,其实实际中都是贴图,如果游戏只出现一个纯色作为背景色,玩家会吐你一脸。
p>建立场景时会这么做:
p>[cpp]
p>bool AppDelegate::applicationDidFinishLaunching()
p>{
p> // initialize director
p> CCDirector *pDirector = CCDirector::sharedDirector();
p> pDirector->setOpenGLView(CCEGLView::sharedOpenGLView());
p>
p> // turn on display FPS
p> pDirector->setDisplayStats(true);
p>
p> // set FPS. the default value is 1.0/60 if you don't call this
p> pDirector->setAnimationInterval(1.0 / 60);
p>
p> // create a scene. it's an autorelease object
p> CCScene *pScene = HelloWorld::scene();
p>
p> // run
p> pDirector->runWithScene(pScene);
p> return true;
p>}
p>
p>当然这是cocos2d-x的末班自动生成的。
p>那里面要生成精灵嘛:
p>[cpp]
p>CCScene* HelloWorld::scene()
p>{
p> CCScene * scene = NULL;
p> do
p> {
p> // 'scene' is an autorelease object
p> scene = CCScene::create();
p> CC_BREAK_IF(! scene);
p>
p> // 'layer' is an autorelease object
p> HelloWorld *layer = HelloWorld::create();
p> CC_BREAK_IF(! layer);
p>
p> // add layer as a child to scene
p> scene->addChild(layer);
p> } while (0);
p>
p> // return the scene
p> return scene;
p>}
p>
p>里面的create会调到:
p>[cpp]
p>CCScene *CCScene::create()
p>{
p> CCScene *pRet = new CCScene();
p> if (pRet && pRet->init())
p> {
p> pRet->autorelease();
p> return pRet;
p> }
p> else
p> {
p> CC_SAFE_DELETE(pRet);
p> return NULL;
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>