cocos2d-x 3.1 +cocostudio 整合应用2

</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就这些了






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值