Cocos2dx:PageView实现游戏关卡
发布时间:2020-12-14 17:01:39 所属栏目:百科 来源:网络整理
导读:PageView实现游戏关卡:实现类似android平台下的viewpager #ifndef __LevelLayer_SCENE_H__#define __LevelLayer_SCENE_H__#include "cocos2d.h"#include "ui/CocosGUI.h"#include "LevelBaseLayer.h"USING_NS_CC;using namespace cocos2d;using namespace u
PageView实现游戏关卡:实现类似android平台下的viewpager
#ifndef __LevelLayer_SCENE_H__ #define __LevelLayer_SCENE_H__ #include "cocos2d.h" #include "ui/CocosGUI.h" #include "LevelBaseLayer.h" USING_NS_CC; using namespace cocos2d; using namespace ui; class WorldBaseLayer; class LevelLayer : public Layer { public: static cocos2d::Scene* createScene(); LevelLayer(); ~LevelLayer(); virtual bool init() override; void pageViewEvent(Ref* pSender,PageViewEventType type); CREATE_FUNC(LevelLayer); private: }; #endif // __LevelLayer_SCENE_H__ #include "LevelLayer.h" USING_NS_CC; //关卡 LevelLayer::LevelLayer(){ }; LevelLayer::~LevelLayer(){ }; Scene* LevelLayer::createScene() { // 'scene' is an autorelease object auto scene = Scene::create(); // 'layer' is an autorelease object auto layer = LevelLayer::create(); // add layer as a child to scene scene->addChild(layer); // return the scene return scene; } bool LevelLayer::init() { if ( !Layer::init() ) { return false; } scheduleUpdate(); Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); Size winSize = Director::getInstance()->getWinSize(); PageView *pageView=PageView::create(); pageView->setTouchEnabled(true); pageView->setSize(Size(winSize.width,winSize.height)); pageView->setPosition(Point(0,0)); //创建4个page for (int i=0; i<4; i++) { Layout* layout = Layout::create(); layout->setSize(Size(winSize.width,winSize.height)); ImageView* imageView = ImageView::create(StringUtils::format("world_map.jpg")); imageView->setScale9Enabled(true); imageView->setSize(Size(400,400)); imageView->setPosition(Point(layout->getContentSize().width / 2.0f,layout->getContentSize().height / 2.0f)); layout->addChild(imageView); Text* label = Text::create(StringUtils::format("page %d",i),"fonts/Marker Felt.ttf",30); label->setColor(Color3B(192,192,192)); label->setPosition(Point(layout->getContentSize().width / 2.0f,layout->getContentSize().height / 2.0f)); layout->addChild(label); pageView->addPage(layout); } pageView->addEventListenerPageView(this,pagevieweventselector(LevelLayer::pageViewEvent)); this->addChild(pageView); return true; } void LevelLayer::pageViewEvent(Ref* pSender,PageViewEventType type){ switch (type) { case PAGEVIEW_EVENT_TURNING: { PageView* pageView = dynamic_cast<PageView*>(pSender); log("pageView->getCurPageIndex() = %ld",pageView->getCurrentPageIndex() + 1); } break; default: break; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- 如何避免使用Typescript转换Jest __mocks__
- PMD-ATPCO-RuleSet_V7.xml 4
- c++ setprecision用法详解
- 为什么你不能检查errno是否等于ERANGE?
- 在C中初始化结构中的const数组
- PLSQL:VARBIABLE:= SEQUENCE.NEXTVAL或SELECT
- ajax – 使用code.jquery.com中的代码进行长期应
- ruby-on-rails-3.2 – Rails资产管道与主题
- swift项目-让自己的项目支持cocoapod和carthage
- pdf2swf 转换时报This file is too complex to r
热点阅读