cocos2dx-3.10 开发初探(一)

来源:互联网 发布:cg制作软件 编辑:程序博客网 时间:2024/05/02 00:41

cocos2dx-3.10 开发初探(一)

1.版权声明

    转载请注明出处:http://blog.csdn.net/iuoon/article/details/51753817

2.开篇前言

                cocos2dx作为国产优秀开源引擎,闲暇之余就研究一下,本篇已cocos2dx -3.10版本开发,制作一个demo初探cocos2dx的世界。

3.内容

    一、欢迎界面制作

    首先是首页制作,使用cocosstudio制作一个欢迎界面


  我这里只是放入了一个logo,比较简单,也可以发挥相信欢迎界面做好看点。

         贴上代码
   
  
#include "WelcomeScene.h"#include "cocostudio/CocoStudio.h"#include "ui/CocosGUI.h"using namespace cocostudio::timeline;WelcomeScene::WelcomeScene(){}WelcomeScene::~WelcomeScene(){}cocos2d::Scene * WelcomeScene::createScene(){auto scene = Scene::create();auto layer = WelcomeScene::create();scene->addChild(layer);return scene;}bool WelcomeScene::init(){if (!Layer::init()){return false;}auto rootNode = CSLoader::createNode("scene/WelcomeScene.csb");addChild(rootNode);scheduleOnce(schedule_selector(WelcomeScene::GotoLogin),2.0f); //延迟两秒执行return true;}void WelcomeScene::GotoLogin(float dt){auto loginscene = LoginScene::createScene();TransitionScene * reScene = TransitionCrossFade::create(1.0f, loginscene);//界面切换效果Director::getInstance()->replaceScene(reScene);}

以上代码加了个延时执行,使欢迎界面能够显示两秒之后再跳转。

二、登陆界面制作

界面目前不实现输入用户名和密码登陆,先做个登陆按钮



以上为界面,下面看下代码:
 
#include "LoginScene.h"#include "cocostudio/CocoStudio.h"#include "ui/CocosGUI.h"#include "MainScene.h"USING_NS_CC;using namespace cocostudio::timeline;LoginScene::LoginScene(){}LoginScene::~LoginScene(){}cocos2d::Scene * LoginScene::createScene(){auto scene = Scene::create();auto layer = LoginScene::create();scene->addChild(layer);return scene;}bool LoginScene::init(){if (!Layer::init()){return false;}Size visibleSize = Director::getInstance()->getVisibleSize();Vec2 origin = Director::getInstance()->getVisibleOrigin();auto rootNode = CSLoader::createNode("scene/LoginScene.csb");addChild(rootNode);auto start_bt = static_cast<Button*>(rootNode->getChildByName("Button_3"));start_bt->addTouchEventListener(CC_CALLBACK_2(LoginScene::GotoGame,this));return true;}void LoginScene::GotoGame(Ref * pSender, Widget::TouchEventType type){auto mainlayer = MainScene::createScene();TransitionScene * res = TransitionCrossFade::create(1.0f, mainlayer);switch (type){case cocos2d::ui::Widget::TouchEventType::BEGAN:break;case cocos2d::ui::Widget::TouchEventType::MOVED:break;case cocos2d::ui::Widget::TouchEventType::ENDED:log("touch start game");Director::getInstance()->replaceScene(res);break;case cocos2d::ui::Widget::TouchEventType::CANCELED:break;default:break;}}
这里面按钮用的Button,需要注意一点的是,如果直接给button设置监听事件,会触发两次事件,那是因为没有指定既触发了begin,又触发了end,为解决这个这个问题
所以只在 Widget::TouchEventType::ENDED:上执行事件



以上就是本篇完成功能。

0 0