您的位置:首页 > 移动开发 > Cocos引擎

从Delphi开始学Cocos2dx-3.0[11]:持续动作之组合动作

2013-12-24 16:13 369 查看
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: