当前位置: 首页>>代码示例>>C++>>正文


C++ SkeletonAnimation::setAnimationStateData方法代码示例

本文整理汇总了C++中SkeletonAnimation::setAnimationStateData方法的典型用法代码示例。如果您正苦于以下问题:C++ SkeletonAnimation::setAnimationStateData方法的具体用法?C++ SkeletonAnimation::setAnimationStateData怎么用?C++ SkeletonAnimation::setAnimationStateData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SkeletonAnimation的用法示例。


在下文中一共展示了SkeletonAnimation::setAnimationStateData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: init

bool BatchingExample::init () {
	if (!LayerColor::initWithColor(Color4B(128, 128, 128, 255))) return false;

	// To avoid the SkeletonBatch buffer from being resized, set this to the number of vertices ever rendered in one frame.
	// BatchingExample needs ~3200, but let's set it low to test the buffer resizing.
	SkeletonBatch::setBufferSize(512);

	// Load the texture atlas.
	_atlas = spAtlas_createFromFile("spineboy.atlas", 0);
	CCASSERT(_atlas, "Error reading atlas file.");

	// This attachment loader configures attachments with data needed for cocos2d-x rendering.
	// Do not dispose the attachment loader until the skeleton data is disposed!
	_attachmentLoader = (spAttachmentLoader*)Cocos2dAttachmentLoader_create(_atlas);

	// Load the skeleton data.
	spSkeletonJson* json = spSkeletonJson_createWithLoader(_attachmentLoader);
	json->scale = 0.6f; // Resizes skeleton data to 60% of the size it was in Spine.
	_skeletonData = spSkeletonJson_readSkeletonDataFile(json, "spineboy.json");
	CCASSERT(_skeletonData, json->error ? json->error : "Error reading skeleton data file.");
	spSkeletonJson_dispose(json);

	// Setup mix times.
	_stateData = spAnimationStateData_create(_skeletonData);
	spAnimationStateData_setMixByName(_stateData, "walk", "jump", 0.2f);
	spAnimationStateData_setMixByName(_stateData, "jump", "run", 0.2f);

	int xMin = _contentSize.width * 0.10f, xMax = _contentSize.width * 0.90f;
	int yMin = 0, yMax = _contentSize.height * 0.7f;
	for (int i = 0; i < 50; i++) {
		// Each skeleton node shares the same atlas, skeleton data, and mix times.
		SkeletonAnimation* skeletonNode = SkeletonAnimation::createWithData(_skeletonData, false);
		skeletonNode->setAnimationStateData(_stateData);

		skeletonNode->setAnimation(0, "walk", true);
		skeletonNode->addAnimation(0, "jump", false, 3);
		skeletonNode->addAnimation(0, "run", true);

		skeletonNode->setPosition(Vec2(
			RandomHelper::random_int(xMin, xMax),
			RandomHelper::random_int(yMin, yMax)
		));
		addChild(skeletonNode);
	}

	scheduleUpdate();

	EventListenerTouchOneByOne* listener = EventListenerTouchOneByOne::create();
	listener->onTouchBegan = [this] (Touch* touch, Event* event) -> bool {
		Director::getInstance()->replaceScene(SpineboyExample::scene());
		return true;
	};
	_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);

	return true;
}
开发者ID:50765926,项目名称:spine-runtimes,代码行数:56,代码来源:BatchingExample.cpp


注:本文中的SkeletonAnimation::setAnimationStateData方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。