Cocos studio初使用(二)
使用markdown来编辑的第一篇文章,其他都还好,代码没有高亮感觉好不爽啊,不知道有没有高人知道怎么搞定这个。
前面的文章介绍了如何在cocos studio中设计场景等,这篇文章介绍一下如何在代码中使用。
一、导入场景
//有几点需要注意 //1、发布后的代码在Resources/res目录下,需要将res目录添加到文件搜索路径中,在AppDelegate::applicationDidFinishLaunching()函数添加: FileUtils::getInstance()->addSearchPath("res"); //注意要在director->runWithScene(scene);前添加 //2、修改设计分辨率为与图片资源相对应的分辨率: static cocos2d::Size designResolutionSize = cocos2d::Size(1280,720); //3、将setContentScaleFactor相关的逻辑都删掉,这个是控制设计分辨率和资源分辨率的比值的,前面设置两个值相同,就不需要设置这个值了(而且自动添加的代码,这部分逻辑有问题)
然后,我们就可以添加场景,在HelloWorld的init函数中,添加:
auto mainScene = CSLoader::createNode("MainScene.csb"); mainScene->setPosition(Vec2(visibleSize.width/2 + origin.x,visibleSize.height/2 + origin.y)); mainScene->setAnchorPoint(Vec2(0.5,0.5)); this->addChild(mainScene);
运行后就可以看到效果:
二、播放帧动画
虽然显示了场景,但可以看到其中的帧动画并没有播放,这是因为播放需要额外操作,我们来加入如下代码:
auto mainAction = CSLoader::createTimeline("MainScene.csb"); //缓存动画 mainScene->runAction(mainAction); //播放动画,true表示重复播放 mainAction->gotoFrameAndPlay(0,180,true);
三、添加按钮事件
我们在cocos studio中编辑时,添加了几个按钮,我们可以从代码中取到这几个按钮,然后添加对应的事件。
//ui::Button需要添加#include "cocos-ext.h" auto btnPlay = static_cast<ui::Button* >(mainScene->getChildByName("Button_play")); btnPlay->addTouchEventListener(CC_CALLBACK_2(HelloWorld::touchPlay,this)); //然后实现一个回调函数HelloWorld::touchPlay void HelloWorld::touchPlay(Ref* pSender,ui::Widget::TouchEventType type){ //一共有下面四种事件会触发 switch (type) { case ui::Widget::TouchEventType::BEGAN: CCLOG("btnPlay touch BEGAN"); break; case ui::Widget::TouchEventType::MOVED: CCLOG("btnPlay touch CANCELED"); break; case ui::Widget::TouchEventType::CANCELED: CCLOG("btnPlay touch CANCELED"); break; case ui::Widget::TouchEventType::ENDED: CCLOG("btnPlay touch ENDED"); break; } }
执行后,点击按钮会触发事件,可以在console中看到输出:
btnPlay touch BEGAN btnPlay touch ENDED btnPlay touch BEGAN btnPlay touch CANCELED btnPlay touch CANCELED