Merge pull request #3343 from dabingnn/Iss2423-TargetAction-Reverse

Iss2423 target action reverse
This commit is contained in:
minggo 2013-08-01 02:25:38 -07:00
commit 077acb7814
3 changed files with 45 additions and 2 deletions

View File

@ -2201,8 +2201,11 @@ TargetedAction* TargetedAction::clone() const
TargetedAction* TargetedAction::reverse(void) const TargetedAction* TargetedAction::reverse(void) const
{ {
// no reverse for this action, just clone it // just reverse the internal action
return this->clone(); auto a = new TargetedAction();
a->initWithTarget(_forcedTarget, _action->reverse());
a->autorelease();
return a;
} }
void TargetedAction::startWithTarget(Node *target) void TargetedAction::startWithTarget(Node *target)

View File

@ -39,6 +39,7 @@ static std::function<Layer*()> createFunctions[] = {
CL(ActionOrbit), CL(ActionOrbit),
CL(ActionFollow), CL(ActionFollow),
CL(ActionTargeted), CL(ActionTargeted),
CL(ActionTargetedReverse),
CL(ActionMoveStacked), CL(ActionMoveStacked),
CL(ActionMoveJumpStacked), CL(ActionMoveJumpStacked),
CL(ActionMoveBezierStacked), CL(ActionMoveBezierStacked),
@ -1335,6 +1336,37 @@ std::string ActionTargeted::subtitle()
return "Action that runs on another target. Useful for sequences"; return "Action that runs on another target. Useful for sequences";
} }
void ActionTargetedReverse::onEnter()
{
ActionsDemo::onEnter();
centerSprites(2);
auto jump1 = JumpBy::create(2,Point::ZERO,100,3);
auto jump2 = jump1->clone();
auto rot1 = RotateBy::create(1, 360);
auto rot2 = rot1->clone();
auto t1 = TargetedAction::create(_kathia, jump2);
auto t2 = TargetedAction::create(_kathia, rot2);
auto seq = Sequence::create(jump1, t1->reverse(), rot1, t2->reverse(), NULL);
auto always = RepeatForever::create(seq);
_tamara->runAction(always);
}
std::string ActionTargetedReverse::title()
{
return "ActionTargetedReverse";
}
std::string ActionTargetedReverse::subtitle()
{
return "Action that runs reversely on another target. Useful for sequences";
}
//#pragma mark - ActionStacked //#pragma mark - ActionStacked
void ActionStacked::onEnter() void ActionStacked::onEnter()

View File

@ -289,6 +289,14 @@ public:
virtual std::string subtitle(); virtual std::string subtitle();
}; };
class ActionTargetedReverse : public ActionsDemo
{
public:
virtual void onEnter();
virtual std::string title();
virtual std::string subtitle();
};
class ActionStacked : public ActionsDemo class ActionStacked : public ActionsDemo
{ {
public: public: