Ejemplo n.º 1
0
void CCSkeletonAnimation::addAnimationState (AnimationStateData* stateData) {
	if (!stateData) {
		stateData = AnimationStateData_create(skeleton->data);
		stateDatas.push_back(stateData);
	}
	AnimationState* state = AnimationState_create(stateData);
	states.push_back(state);
}
Ejemplo n.º 2
0
SkeletonDrawable::SkeletonDrawable (SkeletonData* skeletonData, AnimationStateData* stateData) :
				timeScale(1),
				vertexArray(new VertexArray(Quads, skeletonData->boneCount * 4)) {
	Bone_setYDown(true);

	skeleton = Skeleton_create(skeletonData);
	state = AnimationState_create(stateData);
}
Ejemplo n.º 3
0
CCSkeleton::CCSkeleton (SkeletonData *skeletonData, AnimationStateData *stateData) :
				debugSlots(false), debugBones(false) {
	skeleton = _Cocos2dxSkeleton_create(skeletonData, this);
	state = AnimationState_create(stateData);

	blendFunc.src = GL_ONE;
	blendFunc.dst = GL_ONE_MINUS_SRC_ALPHA;

	setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColor));
	scheduleUpdate();
}
Ejemplo n.º 4
0
SkeletonDrawable::SkeletonDrawable (SkeletonData* skeletonData, AnimationStateData* stateData) :
				timeScale(1),
				vertexArray(skeletonData->boneCount * 4),
				indices(skeletonData->boneCount * 6),
				lastUpdate(-1)
{
	Bone_setYDown(true);

	skeleton = Skeleton_create(skeletonData);
	state = AnimationState_create(stateData);
}
Ejemplo n.º 5
0
CCSkeleton::CCSkeleton (SkeletonData *skeletonData, AnimationStateData *stateData) :
				skeleton(0), state(0), debugSlots(false), debugBones(false) {
	CONST_CAST(Skeleton*, skeleton) = _Cocos2dxSkeleton_create(skeletonData, this);

	if (!stateData) {
		stateData = AnimationStateData_create(skeletonData);
		ownsStateData = true;
	}
	CONST_CAST(AnimationState*, state) = AnimationState_create(stateData);

	blendFunc.src = GL_ONE;
	blendFunc.dst = GL_ONE_MINUS_SRC_ALPHA;

	timeScale = 1;

	setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColor));
	scheduleUpdate();
}
Ejemplo n.º 6
0
void ofxSkeleton::setup(string atlasPath, string jsonPath){
    
	Bone_setYDown(true);
    
	atlas = Atlas_readAtlasFile(atlasPath.c_str());
    
	SkeletonJson * json = SkeletonJson_create(atlas);
	skeletonData = SkeletonJson_readSkeletonDataFile(json, jsonPath.c_str());
	SkeletonJson_dispose(json);
    
	skeleton = Skeleton_create(skeletonData);
	skeleton->flipX = false;
	skeleton->flipY = false;
	Skeleton_setToSetupPose(skeleton);
    
	stateData = AnimationStateData_create(skeletonData);
    
	state = AnimationState_create(stateData);
}
Ejemplo n.º 7
0
void CCSkeletonAnimation::setAnimationStateData (AnimationStateData* stateData, int stateIndex) {
	CCAssert(stateIndex >= 0 && stateIndex < (int)states.size(), "stateIndex out of range.");
	CCAssert(stateData, "stateData cannot be null.");

	AnimationState* state = states[stateIndex];
	for (std::vector<AnimationStateData*>::iterator iter = stateDatas.begin(); iter != stateDatas.end(); ++iter) {
		if (state->data == *iter) {
			AnimationStateData_dispose(state->data);
			stateDatas.erase(iter);
			break;
		}
	}
	for (std::vector<AnimationState*>::iterator iter = states.begin(); iter != states.end(); ++iter) {
		if (state == *iter) {
			states.erase(iter);
			break;
		}
	}
	AnimationState_dispose(state);

	state = AnimationState_create(stateData);
	states[stateIndex] = state;
}