axmol/samples/Cpp/TestCpp/Classes/ActionsEaseTest/ActionsEaseTest.cpp

674 lines
23 KiB
C++
Raw Normal View History

#include "ActionsEaseTest.h"
#include "../testResource.h"
2010-08-25 17:02:58 +08:00
enum {
kTagAction1 = 1,
kTagAction2 = 2,
kTagSlider = 1,
};
2011-07-08 15:57:46 +08:00
CCLayer* nextEaseAction();
CCLayer* backEaseAction();
CCLayer* restartEaseAction();
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpriteEase
//
//------------------------------------------------------------------
#define CCCA(x) (x->copy()->autorelease())
2010-08-25 17:02:58 +08:00
void SpriteEase::onEnter()
{
EaseSpriteDemo::onEnter();
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130,0));
CCActionInterval* move_back = move->reverse();
CCActionInterval* move_ease_in = CCEaseIn::create((CCActionInterval*)(move->copy()->autorelease()), 2.5f);
CCActionInterval* move_ease_in_back = move_ease_in->reverse();
CCActionInterval* move_ease_out = CCEaseOut::create((CCActionInterval*)(move->copy()->autorelease()), 2.5f);
CCActionInterval* move_ease_out_back = move_ease_out->reverse();
CCDelayTime *delay = CCDelayTime::create(0.25f);
CCSequence* seq1 = CCSequence::create(move, delay, move_back, CCCA(delay), NULL);
CCSequence* seq2 = CCSequence::create(move_ease_in, CCCA(delay), move_ease_in_back, CCCA(delay), NULL);
CCSequence* seq3 = CCSequence::create(move_ease_out, CCCA(delay), move_ease_out_back, CCCA(delay), NULL);
CCAction *a2 = m_grossini->runAction(CCRepeatForever::create(seq1));
a2->setTag(1);
CCAction *a1 = m_tamara->runAction(CCRepeatForever::create(seq2));
a1->setTag(1);
CCAction *a = m_kathia->runAction(CCRepeatForever::create(seq3));
a->setTag(1);
schedule(schedule_selector(SpriteEase::testStopAction), 6.25f);
2010-08-25 17:02:58 +08:00
}
2012-06-08 13:55:28 +08:00
void SpriteEase::testStopAction(float dt)
2010-08-25 17:02:58 +08:00
{
unschedule(schedule_selector(SpriteEase::testStopAction));
m_tamara->stopActionByTag(1);
m_kathia->stopActionByTag(1);
m_grossini->stopActionByTag(1);
2010-08-25 17:02:58 +08:00
}
std::string SpriteEase::title()
{
return "EaseIn - EaseOut - Stop";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpriteEaseInOut
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
void SpriteEaseInOut::onEnter()
{
EaseSpriteDemo::onEnter();
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130,0));
// id move_back = move->reverse();
CCActionInterval* move_ease_inout1 = CCEaseInOut::create((CCActionInterval*)(move->copy()->autorelease()), 0.65f);
CCActionInterval* move_ease_inout_back1 = move_ease_inout1->reverse();
CCActionInterval* move_ease_inout2 = CCEaseInOut::create((CCActionInterval*)(move->copy()->autorelease()), 1.35f);
CCActionInterval* move_ease_inout_back2 = move_ease_inout2->reverse();
CCActionInterval* move_ease_inout3 = CCEaseInOut::create((CCActionInterval*)(move->copy()->autorelease()), 1.0f);
CCActionInterval* move_ease_inout_back3 = move_ease_inout3->reverse();
CCDelayTime *delay = CCDelayTime::create(0.25f);
CCSequence* seq1 = CCSequence::create( move_ease_inout1, delay, move_ease_inout_back1, CCCA(delay), NULL);
CCSequence* seq2 = CCSequence::create( move_ease_inout2, CCCA(delay), move_ease_inout_back2, CCCA(delay), NULL);
CCSequence* seq3 = CCSequence::create( move_ease_inout3, CCCA(delay), move_ease_inout_back3, CCCA(delay), NULL);
m_tamara->runAction(CCRepeatForever::create(seq1));
m_kathia->runAction(CCRepeatForever::create(seq2));
m_grossini->runAction(CCRepeatForever::create(seq3));
}
2010-08-25 17:02:58 +08:00
std::string SpriteEaseInOut::title()
{
return "EaseInOut and rates";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpriteEaseExponential
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
void SpriteEaseExponential::onEnter()
{
EaseSpriteDemo::onEnter();
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130,0));
CCActionInterval* move_back = move->reverse();
CCActionInterval* move_ease_in = CCEaseExponentialIn::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_in_back = move_ease_in->reverse();
CCActionInterval* move_ease_out = CCEaseExponentialOut::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_out_back = move_ease_out->reverse();
CCDelayTime *delay = CCDelayTime::create(0.25f);
CCSequence* seq1 = CCSequence::create(move, delay, move_back, CCCA(delay), NULL);
CCSequence* seq2 = CCSequence::create(move_ease_in, CCCA(delay), move_ease_in_back, CCCA(delay), NULL);
CCSequence* seq3 = CCSequence::create(move_ease_out, CCCA(delay), move_ease_out_back, CCCA(delay), NULL);
m_grossini->runAction( CCRepeatForever::create(seq1));
m_tamara->runAction( CCRepeatForever::create(seq2));
m_kathia->runAction( CCRepeatForever::create(seq3));
}
2010-08-25 17:02:58 +08:00
std::string SpriteEaseExponential::title()
{
return "ExpIn - ExpOut actions";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpriteEaseExponentialInOut
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
void SpriteEaseExponentialInOut::onEnter()
{
EaseSpriteDemo::onEnter();
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130, 0));
CCActionInterval* move_back = move->reverse();
CCActionInterval* move_ease = CCEaseExponentialInOut::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_back = move_ease->reverse(); //--> reverse()
CCDelayTime *delay = CCDelayTime::create(0.25f);
CCSequence* seq1 = CCSequence::create( move, delay, move_back, CCCA(delay), NULL);
CCSequence* seq2 = CCSequence::create( move_ease, delay, move_ease_back, CCCA(delay), NULL);
this->positionForTwo();
m_grossini->runAction( CCRepeatForever::create(seq1));
m_tamara->runAction( CCRepeatForever::create(seq2));
}
2010-08-25 17:02:58 +08:00
std::string SpriteEaseExponentialInOut::title()
{
return "EaseExponentialInOut action";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpriteEaseSine
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
void SpriteEaseSine::onEnter()
{
EaseSpriteDemo::onEnter();
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130, 0));
CCActionInterval* move_back = move->reverse();
CCActionInterval* move_ease_in = CCEaseSineIn::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_in_back = move_ease_in->reverse();
CCActionInterval* move_ease_out = CCEaseSineOut::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_out_back = move_ease_out->reverse();
CCDelayTime *delay = CCDelayTime::create(0.25f);
CCSequence* seq1 = CCSequence::create(move, delay, move_back, CCCA(delay), NULL);
CCSequence* seq2 = CCSequence::create(move_ease_in, CCCA(delay), move_ease_in_back, CCCA(delay), NULL);
CCSequence* seq3 = CCSequence::create(move_ease_out, CCCA(delay), move_ease_out_back, CCCA(delay), NULL);
m_grossini->runAction( CCRepeatForever::create(seq1));
m_tamara->runAction( CCRepeatForever::create(seq2));
m_kathia->runAction( CCRepeatForever::create(seq3));
}
2010-08-25 17:02:58 +08:00
std::string SpriteEaseSine::title()
{
return "EaseSineIn - EaseSineOut";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpriteEaseSineInOut
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
void SpriteEaseSineInOut::onEnter()
{
EaseSpriteDemo::onEnter();
2010-08-25 17:02:58 +08:00
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130,0));
CCActionInterval* move_back = move->reverse();
CCActionInterval* move_ease = CCEaseSineInOut::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_back = move_ease->reverse();
CCDelayTime *delay = CCDelayTime::create(0.25f);
CCSequence* seq1 = CCSequence::create(move, delay, move_back, CCCA(delay), NULL);
CCSequence* seq2 = CCSequence::create(move_ease, CCCA(delay), move_ease_back, CCCA(delay), NULL);
2010-08-25 17:02:58 +08:00
this->positionForTwo();
m_grossini->runAction( CCRepeatForever::create(seq1));
m_tamara->runAction( CCRepeatForever::create(seq2));
}
2010-08-25 17:02:58 +08:00
std::string SpriteEaseSineInOut::title()
{
return "EaseSineInOut action";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpriteEaseElastic
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
void SpriteEaseElastic::onEnter()
{
EaseSpriteDemo::onEnter();
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130, 0));
CCActionInterval* move_back = move->reverse();
CCActionInterval* move_ease_in = CCEaseElasticIn::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_in_back = move_ease_in->reverse();
CCActionInterval* move_ease_out = CCEaseElasticOut::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_out_back = move_ease_out->reverse();
CCDelayTime *delay = CCDelayTime::create(0.25f);
CCSequence* seq1 = CCSequence::create(move, delay, move_back, CCCA(delay), NULL);
CCSequence* seq2 = CCSequence::create(move_ease_in, CCCA(delay), move_ease_in_back, CCCA(delay), NULL);
CCSequence* seq3 = CCSequence::create(move_ease_out, CCCA(delay), move_ease_out_back, CCCA(delay), NULL);
m_grossini->runAction( CCRepeatForever::create(seq1));
m_tamara->runAction( CCRepeatForever::create(seq2));
m_kathia->runAction( CCRepeatForever::create(seq3));
}
2010-08-25 17:02:58 +08:00
std::string SpriteEaseElastic::title()
{
return "Elastic In - Out actions";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpriteEaseElasticInOut
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
void SpriteEaseElasticInOut::onEnter()
{
EaseSpriteDemo::onEnter();
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130, 0));
CCActionInterval* move_ease_inout1 = CCEaseElasticInOut::create((CCActionInterval*)(move->copy()->autorelease()), 0.3f);
CCActionInterval* move_ease_inout_back1 = move_ease_inout1->reverse();
CCActionInterval* move_ease_inout2 = CCEaseElasticInOut::create((CCActionInterval*)(move->copy()->autorelease()), 0.45f);
CCActionInterval* move_ease_inout_back2 = move_ease_inout2->reverse();
CCActionInterval* move_ease_inout3 = CCEaseElasticInOut::create((CCActionInterval*)(move->copy()->autorelease()), 0.6f);
CCActionInterval* move_ease_inout_back3 = move_ease_inout3->reverse();
CCDelayTime *delay = CCDelayTime::create(0.25f);
CCSequence* seq1 = CCSequence::create(move_ease_inout1, delay, move_ease_inout_back1, CCCA(delay), NULL);
CCSequence* seq2 = CCSequence::create(move_ease_inout2, CCCA(delay), move_ease_inout_back2, CCCA(delay), NULL);
CCSequence* seq3 = CCSequence::create(move_ease_inout3, CCCA(delay), move_ease_inout_back3, CCCA(delay), NULL);
m_tamara->runAction( CCRepeatForever::create(seq1));
m_kathia->runAction( CCRepeatForever::create(seq2));
m_grossini->runAction( CCRepeatForever::create(seq3));
}
2010-08-25 17:02:58 +08:00
std::string SpriteEaseElasticInOut::title()
{
return "EaseElasticInOut action";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpriteEaseBounce
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
void SpriteEaseBounce::onEnter()
{
EaseSpriteDemo::onEnter();
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130, 0));
CCActionInterval* move_back = move->reverse();
CCActionInterval* move_ease_in = CCEaseBounceIn::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_in_back = move_ease_in->reverse();
CCActionInterval* move_ease_out = CCEaseBounceOut::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_out_back = move_ease_out->reverse();
CCDelayTime *delay = CCDelayTime::create(0.25f);
CCSequence* seq1 = CCSequence::create(move, delay, move_back, CCCA(delay), NULL);
CCSequence* seq2 = CCSequence::create(move_ease_in, CCCA(delay), move_ease_in_back, CCCA(delay), NULL);
CCSequence* seq3 = CCSequence::create(move_ease_out, CCCA(delay), move_ease_out_back, CCCA(delay), NULL);
m_grossini->runAction( CCRepeatForever::create(seq1));
m_tamara->runAction( CCRepeatForever::create(seq2));
m_kathia->runAction( CCRepeatForever::create(seq3));
}
2010-08-25 17:02:58 +08:00
std::string SpriteEaseBounce::title()
{
return "Bounce In - Out actions";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpriteEaseBounceInOut
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
void SpriteEaseBounceInOut::onEnter()
{
EaseSpriteDemo::onEnter();
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130, 0));
CCActionInterval* move_back = move->reverse();
CCActionInterval* move_ease = CCEaseBounceInOut::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_back = move_ease->reverse();
CCDelayTime *delay = CCDelayTime::create(0.25f);
CCSequence* seq1 = CCSequence::create(move, delay, move_back, CCCA(delay), NULL);
CCSequence* seq2 = CCSequence::create(move_ease, CCCA(delay), move_ease_back, CCCA(delay), NULL);
this->positionForTwo();
m_grossini->runAction( CCRepeatForever::create(seq1));
m_tamara->runAction( CCRepeatForever::create(seq2));
}
2010-08-25 17:02:58 +08:00
std::string SpriteEaseBounceInOut::title()
{
return "EaseBounceInOut action";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpriteEaseBack
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
void SpriteEaseBack::onEnter()
{
EaseSpriteDemo::onEnter();
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130, 0));
CCActionInterval* move_back = move->reverse();
CCActionInterval* move_ease_in = CCEaseBackIn::create((CCActionInterval*)(move->copy()->autorelease()));
CCActionInterval* move_ease_in_back = move_ease_in->reverse();
CCActionInterval* move_ease_out = CCEaseBackOut::create((CCActionInterval*)(move->copy()->autorelease()));
CCActionInterval* move_ease_out_back = move_ease_out->reverse();
CCDelayTime *delay = CCDelayTime::create(0.25f);
CCSequence* seq1 = CCSequence::create(move, delay, move_back, CCCA(delay), NULL);
CCSequence* seq2 = CCSequence::create(move_ease_in, CCCA(delay), move_ease_in_back, CCCA(delay), NULL);
CCSequence* seq3 = CCSequence::create(move_ease_out, CCCA(delay), move_ease_out_back, CCCA(delay), NULL);
m_grossini->runAction(CCRepeatForever::create(seq1));
m_tamara->runAction(CCRepeatForever::create(seq2));
m_kathia->runAction(CCRepeatForever::create(seq3));
}
2010-08-25 17:02:58 +08:00
std::string SpriteEaseBack::title()
{
return "Back In - Out actions";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpriteEaseBackInOut
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
void SpriteEaseBackInOut::onEnter()
{
EaseSpriteDemo::onEnter();
CCActionInterval* move = CCMoveBy::create(3, ccp(VisibleRect::right().x-130, 0));
CCActionInterval* move_back = move->reverse();
CCActionInterval* move_ease = CCEaseBackInOut::create((CCActionInterval*)(move->copy()->autorelease()) );
CCActionInterval* move_ease_back = move_ease->reverse();
CCDelayTime *delay = CCDelayTime::create(0.25f);
CCSequence* seq1 = CCSequence::create(move, delay, move_back, CCCA(delay), NULL);
CCSequence* seq2 = CCSequence::create(move_ease, CCCA(delay), move_ease_back, CCCA(delay), NULL);
this->positionForTwo();
m_grossini->runAction( CCRepeatForever::create(seq1));
m_tamara->runAction( CCRepeatForever::create(seq2));
}
2010-08-25 17:02:58 +08:00
std::string SpriteEaseBackInOut::title()
{
return "EaseBackInOut action";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// SpeedTest
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
void SpeedTest::onEnter()
{
EaseSpriteDemo::onEnter();
CCSize s = CCDirector::sharedDirector()->getWinSize();
// rotate and jump
CCActionInterval *jump1 = CCJumpBy::create(4, ccp(-s.width+80, 0), 100, 4);
CCActionInterval *jump2 = jump1->reverse();
CCActionInterval *rot1 = CCRotateBy::create(4, 360*2);
CCActionInterval *rot2 = rot1->reverse();
CCSequence* seq3_1 = CCSequence::create(jump2, jump1, NULL);
CCSequence* seq3_2 = CCSequence::create( rot1, rot2, NULL);
CCSpawn* spawn = CCSpawn::create(seq3_1, seq3_2, NULL);
CCSpeed* action = CCSpeed::create(CCRepeatForever::create(spawn), 1.0f);
action->setTag(kTagAction1);
CCAction* action2 = (CCAction*)(action->copy()->autorelease());
CCAction* action3 = (CCAction*)(action->copy()->autorelease());
action2->setTag(kTagAction1);
action3->setTag(kTagAction1);
m_grossini->runAction(action2);
m_tamara->runAction(action3);
m_kathia->runAction(action);
this->schedule(schedule_selector(SpeedTest::altertime), 1.0f);//:@selector(altertime:) interval:1.0f];
}
2012-06-08 13:55:28 +08:00
void SpeedTest::altertime(float dt)
{
CCSpeed* action1 = (CCSpeed*)(m_grossini->getActionByTag(kTagAction1));
CCSpeed* action2 = (CCSpeed*)(m_tamara->getActionByTag(kTagAction1));
CCSpeed* action3 = (CCSpeed*)(m_kathia->getActionByTag(kTagAction1));
2013-02-28 14:42:32 +08:00
action1->setSpeed( CCRANDOM_MINUS1_1() * 2 );
action2->setSpeed( CCRANDOM_MINUS1_1() * 2 );
action3->setSpeed( CCRANDOM_MINUS1_1() * 2 );
2010-08-25 17:02:58 +08:00
}
std::string SpeedTest::title()
{
return "Speed action";
}
2010-08-25 17:02:58 +08:00
//------------------------------------------------------------------
//
// EaseSpriteDemo
//
//------------------------------------------------------------------
2010-08-25 17:02:58 +08:00
enum
{
IDC_NEXT = 100,
IDC_BACK,
IDC_RESTART
2010-08-25 17:02:58 +08:00
};
static int sceneIdx = -1;
2010-08-25 17:02:58 +08:00
#define MAX_LAYER 13
2010-08-25 17:02:58 +08:00
CCLayer* createEaseLayer(int nIndex)
{
switch(nIndex)
{
case 0: return new SpriteEase();
case 1: return new SpriteEaseInOut();
case 2: return new SpriteEaseExponential();
case 3: return new SpriteEaseExponentialInOut();
case 4: return new SpriteEaseSine();
case 5: return new SpriteEaseSineInOut();
case 6: return new SpriteEaseElastic();
case 7: return new SpriteEaseElasticInOut();
case 8: return new SpriteEaseBounce();
case 9: return new SpriteEaseBounceInOut();
case 10: return new SpriteEaseBack();
case 11: return new SpriteEaseBackInOut();
case 12: return new SpeedTest();
}
return NULL;
2010-08-25 17:02:58 +08:00
}
CCLayer* nextEaseAction()
{
sceneIdx++;
sceneIdx = sceneIdx % MAX_LAYER;
2010-08-25 17:02:58 +08:00
CCLayer* pLayer = createEaseLayer(sceneIdx);
pLayer->autorelease();
2010-08-25 17:02:58 +08:00
return pLayer;
2010-08-25 17:02:58 +08:00
}
CCLayer* backEaseAction()
{
sceneIdx--;
int total = MAX_LAYER;
if( sceneIdx < 0 )
sceneIdx += total;
CCLayer* pLayer = createEaseLayer(sceneIdx);
pLayer->autorelease();
2010-08-25 17:02:58 +08:00
return pLayer;
2010-08-25 17:02:58 +08:00
}
CCLayer* restartEaseAction()
{
CCLayer* pLayer = createEaseLayer(sceneIdx);
pLayer->autorelease();
return pLayer;
}
EaseSpriteDemo::EaseSpriteDemo(void)
{
}
EaseSpriteDemo::~EaseSpriteDemo(void)
{
m_grossini->release();
m_tamara->release();
m_kathia->release();
}
2010-08-25 17:02:58 +08:00
void EaseSpriteDemo::positionForTwo()
{
m_grossini->setPosition(ccp(VisibleRect::left().x+60, VisibleRect::bottom().y + VisibleRect::getVisibleRect().size.height*1/5));
m_tamara->setPosition(ccp( VisibleRect::left().x+60, VisibleRect::bottom().y + VisibleRect::getVisibleRect().size.height*4/5));
m_kathia->setVisible(false);
2010-08-25 17:02:58 +08:00
}
std::string EaseSpriteDemo::title()
{
return "No title";
2010-08-25 17:02:58 +08:00
}
void EaseSpriteDemo::onEnter()
{
CCLayer::onEnter();
2010-08-25 17:02:58 +08:00
// Or you can create an sprite using a filename. PNG and BMP files are supported. Probably TIFF too
m_grossini = CCSprite::create(s_pPathGrossini); m_grossini->retain();
m_tamara = CCSprite::create(s_pPathSister1); m_tamara->retain();
m_kathia = CCSprite::create(s_pPathSister2); m_kathia->retain();
addChild( m_grossini, 3);
addChild( m_kathia, 2);
addChild( m_tamara, 1);
m_grossini->setPosition(ccp(VisibleRect::left().x + 60, VisibleRect::bottom().y+VisibleRect::getVisibleRect().size.height*1/5));
m_kathia->setPosition(ccp(VisibleRect::left().x + 60, VisibleRect::bottom().y+VisibleRect::getVisibleRect().size.height*2.5f/5));
m_tamara->setPosition(ccp(VisibleRect::left().x + 60, VisibleRect::bottom().y+VisibleRect::getVisibleRect().size.height*4/5));
CCLabelTTF* label = CCLabelTTF::create(title().c_str(), "Arial", 32);
addChild(label);
label->setPosition(ccp(VisibleRect::center().x, VisibleRect::top().y-50));
CCMenuItemImage *item1 = CCMenuItemImage::create(s_pPathB1, s_pPathB2, std::bind(&EaseSpriteDemo::backCallback, this, std::placeholders::_1) );
CCMenuItemImage *item2 = CCMenuItemImage::create(s_pPathR1, s_pPathR2, std::bind(&EaseSpriteDemo::restartCallback , this, std::placeholders::_1) );
CCMenuItemImage *item3 = CCMenuItemImage::create(s_pPathF1, s_pPathF2, std::bind(&EaseSpriteDemo::nextCallback, this, std::placeholders::_1) );
CCMenu *menu = CCMenu::create(item1, item2, item3, NULL);
menu->setPosition(CCPointZero);
item1->setPosition(ccp(VisibleRect::center().x - item2->getContentSize().width*2, VisibleRect::bottom().y + item2->getContentSize().height/2));
item2->setPosition(ccp(VisibleRect::center().x, VisibleRect::bottom().y + item2->getContentSize().height/2));
item3->setPosition(ccp(VisibleRect::center().x + item2->getContentSize().width*2, VisibleRect::bottom().y + item2->getContentSize().height/2));
addChild(menu, 1);
2010-08-25 17:02:58 +08:00
}
void EaseSpriteDemo::restartCallback(CCObject* pSender)
2010-08-25 17:02:58 +08:00
{
CCScene* s = new ActionsEaseTestScene();//CCScene::create();
s->addChild(restartEaseAction());
2010-08-25 17:02:58 +08:00
CCDirector::sharedDirector()->replaceScene(s);
2010-09-10 14:52:38 +08:00
s->release();
2010-08-25 17:02:58 +08:00
}
void EaseSpriteDemo::nextCallback(CCObject* pSender)
2010-08-25 17:02:58 +08:00
{
CCScene* s = new ActionsEaseTestScene();//CCScene::create();
s->addChild( nextEaseAction() );
CCDirector::sharedDirector()->replaceScene(s);
2010-09-10 14:52:38 +08:00
s->release();
2010-08-25 17:02:58 +08:00
}
void EaseSpriteDemo::backCallback(CCObject* pSender)
2010-08-25 17:02:58 +08:00
{
CCScene* s = new ActionsEaseTestScene();//CCScene::create();
s->addChild( backEaseAction() );
CCDirector::sharedDirector()->replaceScene(s);
2010-09-10 14:52:38 +08:00
s->release();
2010-08-25 17:02:58 +08:00
}
void ActionsEaseTestScene::runThisTest()
2010-08-25 17:02:58 +08:00
{
CCLayer* pLayer = nextEaseAction();
addChild(pLayer);
2010-11-11 11:18:58 +08:00
CCDirector::sharedDirector()->replaceScene(this);
2010-08-25 17:02:58 +08:00
}