首先普及幾個基本動作ScaleTo和ScaleBy,我之前的博文有介紹過這兩個類,無非就是讓cocos2dx的對象可以進行縮放,它們有兩個參數,第一個參數是時間,第二個是scale值的大小。
那麼我們接下來就用這兩個動作其中任意一個來做一個窗口抖動呈現的效果。
AlertPassDlg* alertDlg = AlertPassDlg::create();
alertDlg->setScale(0);
CCDirector::sharedDirector()->getRunningScene()->addChild(alertDlg);
CCScaleTo* scaleTo = CCScaleTo::create(0.15, 1.25);
CCScaleTo* scaleTo2 = CCScaleTo::create(0.1, 1);
alertDlg->runAction(CCSequence::createWithTwoActions(scaleTo,scaleTo2));
這樣我們就會看到窗口彈出來的時候像是抖動了一下,其實實際上只是對話框先由scale值從0變爲1.25,再由1.25變爲正常大小1,這樣就實現了對話框的抖動出現,哈哈,簡單吧。
以上的AlertPassDlg可以替換爲其他的Layer或者Sprite等,只要繼承在CCNode就可以運行該動畫,也可以通過調整CCScaleTo的第一個參數來控制抖動的幅度,你可以自己設置一下試一試,怎麼樣,是不是爽爆啦,哈哈。
當然這種方案只是一種簡單的方案,想實現真正的抖動效果那還需要讀者仔細研究一下。