Cocos2d-x 3.0 PageViewを試してみる
未だに3.0Finalからバージョンアップしてないraharuです。
この間AVアンプ買いました、テレビとリンビングPCが同じアンプ経由で接続されているので
結構便利になりましたおすすめです。
という事で今回はPageViewを試してみます。
PageViewScene.h
#include "cocos2d.h" #include <ui/CocosGUI.h> class PageViewScene : public cocos2d::Layer { public : static cocos2d::Scene* createScene(); virtual bool init(); CREATE_FUNC(PageViewScene); void pageviewCallBack(cocos2d::Ref * psender, cocos2d::ui::PageViewEventType type); };
PageViewScene.cpp
#include "PageViewScene.h" USING_NS_CC; using namespace ui; Scene* PageViewScene::createScene() { auto scene = Scene::create(); auto layer = PageViewScene::create(); scene->addChild(layer); return scene; } // on "init" you need to initialize your instance bool PageViewScene::init() { //初期化 if ( !Layer::init() ) return false; //画面サイズを取得 auto windowSize = Director::getInstance()->getWinSize(); //PageViewを作成これにレイアウトを追加していく auto pageView = PageView::create(); pageView->setTouchEnabled(true); pageView->setSize(windowSize); //3ページ作成する for (int i = 0; i < 40; i++) { //レイアウトを作成 auto layout = Layout::create(); layout->setSize(windowSize); //画像 auto imageView = ImageView::create("BattleSceneLayout/stage/BackGround_001.png"); imageView->setAnchorPoint( Point::ANCHOR_BOTTOM_LEFT ); imageView->setScale(2.0f); layout->addChild(imageView); //テキスト auto label = Text::create(StringUtils::format("%dページ",(i+1)), "fonts/Marker Felt.ttf", 30); label->setColor(Color3B(Color3B::BLUE)); label->setPosition(Point(layout->getSize().width / 2, layout->getSize().height / 2)); layout->addChild(label); //レイアウトをaddする pageView->addPage(layout); } //イベントリスナーを追加(using namespace ui; しないと参照出来ないので注意) pageView->addEventListenerPageView(this, pagevieweventselector(PageViewScene::pageviewCallBack)); this->addChild(pageView); return true; } //コールバック void PageViewScene::pageviewCallBack(Ref* sender, PageViewEventType type) { if(type == PAGEVIEW_EVENT_TURNING){ auto pageView = dynamic_cast<PageView*>(sender); //選択されているページをログに出力 log("%ld",pageView->getCurPageIndex() + 1); } }
結果はこんな感じ
実はこれCocostudioでやろうと思ったんですけど
ページ数が可変だったのでロジック側での実装となりました。
CocostudioForMacのAnimationEditorを心待ちにしています(ボソッ)
ご意見マサカリ等歓迎しております。