码迷,mamicode.com
首页 > 其他好文 > 详细

场景切换的效果

时间:2015-03-28 08:45:09      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

在上次的场景切换中增加代码,并在res中添加一个图片,作为第一个场景中的图片

 HelloWorldScene.cpp中的  

 

bool HelloWorld::init()

{

    //////////////////////////////

    // 1. super init first

    if ( !Layer::init() )

    {

        return false;

    }

   

    /**

     * 以下代码实现的是切换场景的目的,

     * 点击文本框中的字体时,切换场景,有图片

     */

    //获得可见区域的大小

    Size visibleSize = Director::getInstance()->getVisibleSize();

   

    //在第一个场景中添加图片,为了能够看得出场景切换时的效果

    Sprite *bg = Sprite::create("bird.jpg");

    bg->setPosition(Point(visibleSize.width / 2, visibleSize.height / 2));

    addChild(bg);

   

   

    //添加文本框,文本内容,字体种类,字体的大小

    LabelTTF *label = LabelTTF::create("show next scene", "Courier", 36);

    addChild(label);//将文本添加到层中

    //将文本放在中间

    label->setPosition(visibleSize.width/2, visibleSize.height/2);

   

    //为label设置事件监听器

   

    // 1.创建监听器

    EventListenerTouchOneByOne *listener = EventListenerTouchOneByOne::create();

    // 2.让listener->onTouchBegan 指向一个要执行的闭包函数

    //[捕获label变量]

    listener->onTouchBegan = [label](Touch *t, Event *e){

       

        //判断,label->边界.包括(触摸点),说明点击的是label,则执行一个新的Scene

        if (label->getBoundingBox().containsPoint(t->getLocation())) {

//            //运行新创建的场景

//            Director::getInstance()->replaceScene(ImageScene::createScene());

           

            //设置场景切换的效果,1秒后场景消失

            Director::getInstance()->replaceScene(TransitionFadeBL::create(1, ImageScene::createScene()));

        }

        return false;

    };

    // 3.添加事件监听器

    //参数(监听器,节点即要监听的节点)

    Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, label);

   

   

 

    return true;

}

 

场景切换的效果

标签:

原文地址:http://www.cnblogs.com/dudu580231/p/4373555.html

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