bool THelloWorld::onTouchBegan(TTouch* touch, TEvent* event)
{
auto sprite = (TSprite*)(this->getChildByTag(1000));
static int nTempIdx = 0;
switch (nTempIdx++)
{
case 0: // 绕个圈圈回原地
{
sprite->runAction(
TSequence::create(
TMoveBy::create(0.5, TPoint(150.0f, 0.0f)), // 向右移动
TMoveBy::create(1, TPoint(0.0f, -150.0f)), // 向下移动
TMoveBy::create(1, TPoint(-300.0f, 0.0f)), // 向左移动
TMoveBy::create(1, TPoint(0.0f, 300.0f)), // 向上移动
TMoveBy::create(1, TPoint(300.0f, 0.0f)), // 向右移动
TMoveBy::create(1, TPoint(0.0f, -150.0f)), // 向下移动
TMoveTo::create(0.5, g_ClientMidPoint), // 然后回到中心点
NULL)
);
} break;
case 1 : // 移动到目标 变形后回归
{
sprite->runAction(
TSequence::create(
TMoveTo::create(1, touch->getLocation()), // 移动到指定位置
TScaleBy::create(1, 1.5f, 1.5f), // 放大
TScaleTo::create(1, 1.0f, 1.0f), // 缩小
TMoveTo::create(1, g_ClientMidPoint), // 然后回到中心点
NULL)
);
} break;
case 2: // 边移动,边变形
{
sprite->runAction(
TSpawn::create(
TMoveTo::create(1, touch->getLocation()), // 移动到指定位置
TScaleBy::create(1, 1.5f, 1.5f), // 放大
NULL)
);
} break;
case 3: // 边移动,边变形
{
sprite->runAction(
TSpawn::create(
TScaleTo::create(1, 1.0f, 1.0f), // 缩小
TMoveTo::create(1, g_ClientMidPoint), // 然后回到中心点
NULL)
);
} break;
case 4: // 2 3 合起来
{
sprite->runAction(
TSequence::create(
TSpawn::create(
TMoveTo::create(1, touch->getLocation()), // 移动到指定位置
TScaleBy::create(1, 1.5f, 1.5f), // 放大
NULL),
TSpawn::create(
TScaleTo::create(1, 1.0f, 1.0f), // 缩小
TMoveTo::create(1, g_ClientMidPoint), // 然后回到中心点
NULL),
NULL)
);
} break;
default:
{
nTempIdx = 0;
}
}
CCLOG("THelloWorld::onTouchBegan id = %d, x = %f, y = %f", touch->getID(), touch->getLocation().x, touch->getLocation().y);
return true;
}