mirror of https://github.com/axmolengine/axmol.git
cpp-tests
This commit is contained in:
parent
5cfbd3a2bd
commit
d2746f64a6
|
@ -1487,3 +1487,99 @@ void TestChangeAnimationInternal::onTouchesEnded(const std::vector<Touch*>& touc
|
||||||
Director::getInstance()->setAnimationInterval(1/30.0f);
|
Director::getInstance()->setAnimationInterval(1/30.0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//TestDirectFromBinay
|
||||||
|
|
||||||
|
const char* TestLoadFromBinary::m_binaryFilesNames[BINARYFILECOUNT] ={"armature/bear.csb","armature/horse.csb",
|
||||||
|
"armature/Cowboy.csb","armature/hero.csb",
|
||||||
|
"armature/HeroAnimation.csb","armature/testEasing.csb"};
|
||||||
|
const char* TestLoadFromBinary::m_armatureNames[BINARYFILECOUNT] ={"bear","horse",
|
||||||
|
"Cowboy","hero",
|
||||||
|
"HeroAnimation","testEasing"};
|
||||||
|
|
||||||
|
|
||||||
|
void TestLoadFromBinary::onEnter()
|
||||||
|
{
|
||||||
|
ArmatureTestLayer::onEnter();
|
||||||
|
//setTouchEnabled(true);
|
||||||
|
|
||||||
|
m_armatureIndex = -1; // none
|
||||||
|
|
||||||
|
// remove json created
|
||||||
|
// remove sync resource
|
||||||
|
ArmatureDataManager::getInstance()->removeArmatureFileInfo("armature/bear.ExportJson");
|
||||||
|
ArmatureDataManager::getInstance()->removeArmatureFileInfo(m_binaryFilesNames[0]);
|
||||||
|
// load from binary
|
||||||
|
ArmatureDataManager::getInstance()->addArmatureFileInfo(m_binaryFilesNames[0]);
|
||||||
|
|
||||||
|
m_armature = Armature::create(m_armatureNames[0]);
|
||||||
|
m_armature->getAnimation()->playWithIndex(0);
|
||||||
|
m_armature->setScale(1.0f);
|
||||||
|
|
||||||
|
m_armature->setPosition(Vec2(VisibleRect::center().x, VisibleRect::center().y));
|
||||||
|
addChild(m_armature);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::string TestLoadFromBinary::title() const
|
||||||
|
{
|
||||||
|
return "Test load from binary file";
|
||||||
|
}
|
||||||
|
std::string TestLoadFromBinary::subtitle() const
|
||||||
|
{
|
||||||
|
return "direct load. \nTouch to change to Asynchronous load.";
|
||||||
|
}
|
||||||
|
|
||||||
|
void TestLoadFromBinary::onTouchesEnded(const std::vector<Touch*>& touches, Event* event)
|
||||||
|
{
|
||||||
|
// remove json created
|
||||||
|
// remove sync resource
|
||||||
|
if(-1 == m_armatureIndex )
|
||||||
|
{
|
||||||
|
ArmatureDataManager::getInstance()->removeArmatureFileInfo(m_binaryFilesNames[0]);
|
||||||
|
ArmatureDataManager::getInstance()->removeArmatureFileInfo("armature/Cowboy.ExportJson");
|
||||||
|
ArmatureDataManager::getInstance()->removeArmatureFileInfo("armature/hero.ExportJson");
|
||||||
|
ArmatureDataManager::getInstance()->removeArmatureFileInfo("armature/horse.ExportJson");
|
||||||
|
ArmatureDataManager::getInstance()->removeArmatureFileInfo("armature/HeroAnimation.ExportJson");
|
||||||
|
ArmatureDataManager::getInstance()->removeArmatureFileInfo("armature/testEasing.ExportJson");
|
||||||
|
|
||||||
|
for( int i = 0; i < BINARYFILECOUNT; i++)
|
||||||
|
{
|
||||||
|
ArmatureDataManager::getInstance()->addArmatureFileInfoAsync(m_binaryFilesNames[i], this, schedule_selector(TestLoadFromBinary::dataLoaded));
|
||||||
|
}
|
||||||
|
|
||||||
|
m_armatureIndex = -2; // is loading
|
||||||
|
}
|
||||||
|
else if(m_armatureIndex>=0 && m_armature != NULL)
|
||||||
|
{
|
||||||
|
this->removeChild(m_armature);
|
||||||
|
m_armatureIndex = m_armatureIndex==BINARYFILECOUNT-1 ? 0 : m_armatureIndex+1;
|
||||||
|
m_armature = Armature::create(m_armatureNames[m_armatureIndex]);
|
||||||
|
m_armature->setPosition(Vec2(VisibleRect::center().x, VisibleRect::center().y));
|
||||||
|
if(m_armatureIndex == 2 ) // cowboy is 0.2
|
||||||
|
m_armature->setScale(0.2f);
|
||||||
|
m_armature->getAnimation()->playWithIndex(0);
|
||||||
|
addChild(m_armature);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void TestLoadFromBinary::dataLoaded( float percent )
|
||||||
|
{
|
||||||
|
LabelTTF *label = (LabelTTF *)getChildByTag(10001);
|
||||||
|
if (label)
|
||||||
|
{
|
||||||
|
char pszPercent[255];
|
||||||
|
sprintf(pszPercent, "%s %f", subtitle().c_str(), percent * 100);
|
||||||
|
label->setString(pszPercent);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (percent >= 1)
|
||||||
|
{
|
||||||
|
label->setString("Touch to change armature");
|
||||||
|
m_armatureIndex = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -45,6 +45,7 @@ enum {
|
||||||
TEST_PLAY_SEVERAL_MOVEMENT,
|
TEST_PLAY_SEVERAL_MOVEMENT,
|
||||||
TEST_EASING,
|
TEST_EASING,
|
||||||
TEST_CHANGE_ANIMATION_INTERNAL,
|
TEST_CHANGE_ANIMATION_INTERNAL,
|
||||||
|
TEST_DIRECT_FROM_BINARY,
|
||||||
|
|
||||||
TEST_LAYER_COUNT
|
TEST_LAYER_COUNT
|
||||||
};
|
};
|
||||||
|
@ -393,4 +394,24 @@ public:
|
||||||
void onTouchesEnded(const std::vector<Touch*>& touches, Event* event);
|
void onTouchesEnded(const std::vector<Touch*>& touches, Event* event);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#define BINARYFILECOUNT 6
|
||||||
|
class TestLoadFromBinary : public ArmatureTestLayer
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual void onEnter();
|
||||||
|
virtual std::string title() const override;
|
||||||
|
virtual std::string subtitle() const override;
|
||||||
|
|
||||||
|
void onTouchesEnded(const std::vector<Touch*>& touches, Event* event);
|
||||||
|
|
||||||
|
void dataLoaded(float percent);
|
||||||
|
|
||||||
|
private:
|
||||||
|
cocostudio::Armature *m_armature; // current armature
|
||||||
|
static const char* m_binaryFilesNames[BINARYFILECOUNT];
|
||||||
|
static const char* m_armatureNames[BINARYFILECOUNT];
|
||||||
|
int m_armatureIndex; // index of sync loaded armature, default -1 is none
|
||||||
|
};
|
||||||
|
|
||||||
#endif // __HELLOWORLD_SCENE_H__
|
#endif // __HELLOWORLD_SCENE_H__
|
||||||
|
|
Loading…
Reference in New Issue