您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x 3.1 +cocostudio 整合应用2

2014-09-15 10:00 211 查看
</pre>1.<span style="font-family:宋体">动画操作</span><span style="letter-spacing:0pt; font-size:9pt; font-family:Arial"></span><p></p><p class="p15" style="margin-bottom:3pt; margin-top:3pt; padding:0pt"><span style="letter-spacing:0pt; font-size:10pt; font-family:Arial">注意<span style="font-family:Arial">cocostudio</span><span style="font-family:宋体">动画、场景的操作的</span><span style="font-family:Arial">api---</span></span><span style="color:rgb(255,0,0); letter-spacing:0pt; font-size:10pt; font-family:Arial">D:\cocos2d\cocos2d-x-3.1.1\tests\cpp-tests\Classes\ExtensionsTest<span style="font-family:宋体">。</span></span><span style="letter-spacing:0pt; font-size:10pt; font-family:Arial">而<span style="font-family:Arial">ui</span><span style="font-family:宋体">的操作的</span><span style="font-family:Arial">api</span><span style="font-family:宋体">是</span><span style="font-family:Arial">D:\cocos2d\cocos2d-x-3.1.1\tests\cpp-tests\Classes\UITest</span><span style="font-family:宋体">。所以要格外注意。</span></span><span style="letter-spacing:0pt; font-size:9pt; font-family:Arial"></span></p><p class="p15" style="margin-bottom:3pt; margin-top:3pt; padding:0pt"></p><p class="p15" style="margin-bottom:3pt; margin-top:3pt; padding:0pt">取得动画的代码如下:</p><p class="p15" style="margin-bottom:3pt; margin-top:3pt; padding:0pt"><span style="letter-spacing:0pt; font-size:10pt; font-family:Arial"><span style="font-family:宋体"></span></span></p><pre name="code" class="cpp">	ArmatureDataManager::getInstance()->addArmatureFileInfo("DemoPlayer/DemoPlayer.ExportJson");
Armature* armature = Armature::create("DemoPlayer");
armature->setTag(AM_MYANIMATION);
armature->getAnimation()->playWithIndex(0);
armature->setPosition(Point(origin.x + visibleSize.width/2 ,
origin.y + visibleSize.height/2));
this->addChild(armature);
在 事件中播放动画:

void HelloWorld::onMoveRight(cocos2d::CCObject *pSender, TouchEventType type)
{
auto armature = (Armature*)getChildByTag(AM_MYANIMATION);
if(type == TOUCH_EVENT_BEGAN)
{
armature->getAnimation()->play("walk");
}
if (type == TOUCH_EVENT_ENDED)
{
armature->getAnimation()->play("stand");
}
}
贴上demo代码:http://download.csdn.net/detail/qqq644755786/7917397

2场景操作:
场景操作是为了整合UI界面与动画元素,





就可以导入以前做的动画或者Ui编辑器了。这个文件夹是相关例子:D:\cocos2d\cocos2d-x-3.1.1\tests\cpp-tests\Classes\ExtensionsTest\CocoStudioSceneTest
调用的代码如下:

//添加cocostudio的文件--场景编辑器

auto node = SceneReader::getInstance()->createNodeWithSceneFile("publish/Scene01.json");
if(node)
{
addChild(node);
}
//场景编辑器寻找ui编辑器
auto child = node->getChildByTag(10005);
auto reader = (ComRender*)child->getComponent("GUIComponent");
Widget *uiLayer=static_cast<cocos2d::ui::Widget*>(reader->getNode());
//Button
btn_start = dynamic_cast<Button*>(uiLayer->getChildByTag(UI_Btn_Start));
btn_start->addTouchEventListener(this,toucheventselector(HelloWorld::touchButton));
//checkBox
show_view= dynamic_cast<CheckBox*>(uiLayer->getChildByTag(UI_CheckBox));
show_view->setSelectedState(true);//设置初始状态
show_view->addEventListener(CC_CALLBACK_2(HelloWorld::selectedEvent, this));
//Label--是Text
_displayValueLabel=dynamic_cast<Text*>(uiLayer->getChildByTag(UI_Label));
int m=50;
_displayValueLabel->setString(CCString::createWithFormat("percent %d", m)->getCString());
//imageView --用name方式
imgView = static_cast<ImageView*>(Helper::seekWidgetByName(uiLayer,"Image_3"));

//Slider
slider = dynamic_cast<Slider*>(uiLayer->getChildByTag(UI_Slide));
slider->setPercent(35);
slider->addEventListener(CC_CALLBACK_2(HelloWorld::sliderEvent, this));
//数字标签TextAtlas
num_ValueLabel=dynamic_cast<TextAtlas*>(uiLayer->getChildByTag(UI_NUmLabel));
num_ValueLabel->setString(CCString::createWithFormat("percent %d",0)->getCString());

//loadingbar
loadbar=dynamic_cast<LoadingBar*>(uiLayer->getChildByTag(UI_LoadingBar));
loadbar->setPercent(25);
//textField文本框
text_name=dynamic_cast<TextField*>(uiLayer->getChildByTag(UI_TextField_name));
text_password=dynamic_cast<TextField*>(uiLayer->getChildByTag(UI_TextField_password));
text_name->addEventListener(CC_CALLBACK_2(HelloWorld::textFieldEvent, this));
text_password->addEventListener(CC_CALLBACK_2(HelloWorld::textFieldEvent, this));


使用场景编辑器调用动画

//场景编辑器寻找动画编辑器
ComRender *render = static_cast<ComRender*>(node->getChildByTag(10003)->getComponent("CCArmature"));
armature = static_cast<Armature*>(render->getNode());
//armature->setTag(AM_MYANIMATION);
armature->setPosition(Point(origin.x + visibleSize.width/2 ,origin.y + visibleSize.height/2));

btn_left = dynamic_cast<Button*>(uiLayer->getChildByTag(UI_Btn_Left));
btn_left->addTouchEventListener(this,toucheventselector(HelloWorld::onMoveLeft));

附上demo地址:还是要收1积分希望大家支持http://download.csdn.net/detail/qqq644755786/7917407

谢谢入门级别的cocostudio就这些了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息