コード例 #1
0
unsigned sampleAnimation(const std::string &tname, const std::string &aname, float timePassed, float speed, bool loop)
{
	unsigned index = (timePassed / getAnimationDuration(tname,aname)) 
											* (getAnimationLength(tname,aname));
	if (loop)
		index %= getAnimationLength(tname, aname);
	else if (index == getAnimationLength(tname, aname))
		index--;

	return getFrame(tname, aname, index);
}
コード例 #2
0
void Recording::apply( Skeleton *skeleton, const BoneMask& boneMask/*=default_bone_mask*/ )
{
	if (getAnimationLength() > 0.f) {
		animation->apply(skeleton, playbackTime, 1.f, 1.f, boneMask);
	}
}
コード例 #3
0
float getAnimationDuration(const std::string &tname, const std::string &aname)
			{ return getAnimationLength(tname,aname) / frameRates[tname][aname]; }