场景切换的效果
在上次的場景切換中增加代碼,并在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;
}
?
轉載于:https://www.cnblogs.com/dudu580231/p/4373555.html
總結
- 上一篇: GCD之死锁体会
- 下一篇: jQuery插件:jqGrid使用(二)