Example #1
0
bool CSmeltArmor::init()
{
	if (BaseLayer::init())
	{
		m_ui = LoadComponent("RinseItem.xaml");  //  
		m_ui->setPosition(VCENTER);
		this->addChild(m_ui);
		this->setIsShowBlack(false);
		
		m_attr = (CLayout*)m_ui->findWidgetById("attr");

		//获取cell
		m_pCellInfo = (CLayout*)m_ui->findWidgetById("cell_info");
		CC_SAFE_RETAIN(m_pCellInfo);
		m_pCellInfo->removeFromParentAndCleanup(false);

		CCPoint pBasePos = ccp(1281, 160);
		//初始化基础属性四条
		initItemInfo(pBasePos, m_pBaseInfo, 4);

		//添加动画
		SkeletonAnimation *pSkeletonAnimation = SkeletonAnimation::createWithFile("strengthen/5002.json", "strengthen/5002.atlas", 1);
		pSkeletonAnimation->setPosition(ccp(887, -2));
		pSkeletonAnimation->setAnimation(0, "stand", true);
		m_ui->addChild(pSkeletonAnimation, 3);
		m_pSpineHero = pSkeletonAnimation;

		return true;
	}
	return false;

}
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;
}
Example #3
0
void SpineTest::testSimple(Object *sender)
{
	log("testSimple");
	
	SkeletonAnimation *node = SkeletonAnimation::createWithFile("player.json", "player.atlas");
    node->setAnimation(0, "walk", true);
	
	node->setPosition(Point(200, 200));

	addChild(node);
}
Example #4
0
void SpineTest::testChangeAnimation(Object *sender)
{
	log("testChangeAnimation");
	
	// Setting the Animation
	SkeletonAnimation *node = SkeletonAnimation::createWithFile("player.json", "player.atlas");
    node->setAnimation(0, "walk", true);
	node->setPosition(Point(200, 120));
	node->setTag(kTagSpinePlayer);
	addChild(node);
	mAnime = node;
	
	// Setting the buttons
	std::vector<Node *> nodeArray;
	ControlButton *button;
	
	button = GUIHelper::createButton("Walk", this, cccontrol_selector(SpineTest::changeAnime), Point(0, 0));
	button->setTag(kTagButtonWalk);
	nodeArray.push_back(button);
	
	button = GUIHelper::createButton("Jump", this, cccontrol_selector(SpineTest::changeAnime), Point(0, 0));
	button->setTag(kTagButtonJump);
	nodeArray.push_back(button);

	button = GUIHelper::createButton("Hurt", this, cccontrol_selector(SpineTest::changeAnime), Point(0, 0));
	button->setTag(kTagButtonHurt);
	nodeArray.push_back(button);

	button = GUIHelper::createButton("Idle", this, cccontrol_selector(SpineTest::changeAnime), Point(0, 0));
	button->setTag(kTagButtonIdle);
	nodeArray.push_back(button);

	GUIHelper::addNodesToParent(this, nodeArray, 0, 50, 480, 10);
	
	
	// hide the menu
	hideMenu();
}