码迷,mamicode.com
首页 > 微信 > 详细

cocos2dx游戏开发——微信打飞机学习笔记(四)——GameScene的搭建

时间:2014-08-23 11:18:40      阅读:420      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   文件   2014   div   

一、创建文件

       首先呢,就是那个创建新的.h 和 .cpp 的文件,然后可以起名为GameScene

最重要的就是一定要创建在Classes的目录下哦= =,别手抖= =。

二、GameScene.h和GameScene.cpp

      简单来说就是先搭建一个空的场景,为了以后一些游戏主题的层做一个容器,然后我们应该怎么处理呢?

然后呢……先贴代码~

//GameScene.h
#ifndef WeiXinDaPlane_GAME_SCENE_H__
#define  WeiXinDaPlane_GAME_SCENE_H__

#include "cocos2d.h"

USING_NS_CC;

class GameScene: public Scene
{
public:
    GameScene();
    ~GameScene();

    virtual bool init();           //这是二段式的设计模式~就是把创建和初始化分开,详情请见子龙山人的博客~

    CREATE_FUNC(GameScene);

protected:

private:
};

简单的来说就是继承了Scene之后,创建一个空的Scene。

1、CREATE_FUNC(GameScene),上节已详述,就是cocos2d封装的一个创建和初始化的宏定义~。

2、init() 是继承Scene的,基本上GameScene的操作最后都是要从这里加入的~

然后是cpp,就是很简单的实现一下下,做一个空的容器而已~

#include "GameScene.h"

GameScene::GameScene()
{
    
}

GameScene::~GameScene()
{

}

bool GameScene::init()
{
    if (!Scene::init())
    {
        return false;
    }


    return true;
}

 

三、WelcomeScene 切换到 GameScene

       大家是否还记得WelcomeScene那里是有个LoadIng的动画,我们需要做的就是在Loading动画后加入一个转场的操作,这里需要一个动作序列,大家请看代码~

auto animation = Animation::create();
    animation->setDelayPerUnit(0.5f);
    animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("game_loading1.png"));
    animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("game_loading2.png"));
    animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("game_loading3.png"));
    animation->addSpriteFrame(SpriteFrameCache::getInstance()->getSpriteFrameByName("game_loading4.png"));
    auto animate = Animate::create(animation);



    auto animationDone = CallFunc::create(
        [=](){
            auto scene = GameScene::create();
            auto transition = TransitionSlideInB::create(1, scene);
            Director::getInstance()->replaceScene(transition);

        });

    auto sequence = Sequence::create(animate, animationDone, NULL);


    gameLoading->runAction(sequence);

3、所谓的sequence就是一个动作的序列,你可以把多个连续的动作合并创建出一个sequence,然后让对象直接run这个sequence,就会把所有的动作按顺序执行一遍。

4、然后转场的关键地方就是在那个animationDone,这里是一个XXX表达式(小白~~不知道如何表达),就是一个隐式的函数(没有函数名),然后其中的内容就是,实例化一个GameScene,加入一个过场动画,然后让Dicrector执行这个动画就会转场啦~。

然后默默放出效果图~

bubuko.com,布布扣

然后就看下一节吧~

cocos2dx游戏开发——微信打飞机学习笔记(四)——GameScene的搭建

标签:style   blog   http   color   os   io   文件   2014   div   

原文地址:http://www.cnblogs.com/BlueMountain-HaggenDazs/p/3930783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!