回答
如果您正在尋找簡單的東西。
製作一系列動畫爆炸的圖像。將這些添加到UIImageView並開始動畫。像這樣:
UIImage *image0 = [UIImage imageNamed:@"explosion0.png"];
UIImage *image1 = [UIImage imageNamed:@"explosion1.png"];
UIImage *image2 = [UIImage imageNamed:@"explosion2.png"];
UIImage *image3 = [UIImage imageNamed:@"explosion3.png"];
myImageView.animationImages = [NSArray arrayWithObjects:image0, image1, image2, image3, nil];
[myImageView setAnimationDuration:0.75f];
[myImageView startAnimation];
該代碼有效,但Apple的粒子發射器更好,因爲您可以簡單地定義粒子的外觀和發射源/速率。例如,我可以創建數百萬個以每秒100個粒子的速度爆炸的灰色粒子,速度爲100個單位/秒,並且重疊的粒子會產生較暗的像素。 – moonman239
iPhone Programming Tutorial: Animating a Game Sprite
如果你需要做一個爆炸另一種選擇是使用cocos2d的和做的事:
CCParticleSun *anExplosion=[CCParticleGalaxy node];
[kk setPosition:ball.position];
[self addChild:anExplosion];
不是一個真正的動畫,也從你的問題似乎沒有被使用Cocos2d,但如果你開始使用它,你可以做到這一點......
對於彈跳球遊戲,Cocos2D遊戲和Box2d物理(包括在Cocos2D)引擎是一個偉大的路要走。
雷Wenderlich對恰好三個偉大的教程,你想做什麼:
- Intro to Box2D with Cocos2D Tutorial: Bouncing Balls
- How To Create A Breakout Game with Box2D and Cocos2D Tutorial: Part 1
- How To Create A Breakout Game with Box2D and Cocos2D Tutorial: Part 2
一旦你過去與Box2D的對象的基礎知識,關鍵的一步是創建一個Contact Listener(如教程中所述),它將告訴您何時發生碰撞。如果碰撞對象是您想要爆炸的對象,請檢查(通過在tick方法中迭代聯繫人),如果是,則將它們添加到要銷燬的對象向量中(我們無法在迭代聯繫人或我們時執行此操作會使迭代器無效)。記住碰撞的座標並設置爆炸標誌。
退出循環後,破壞屍體並在保存的位置運行爆炸效果。
Cocos2D有一些非常好的內置爆炸效果,我用於我的項目的一個是CCParticleSun。你可以找到使用這個效果的人的一些截圖here。 (這個奇怪的叫CCParticleExplosion只是給了很多五彩紙屑在屏幕上飛舞。)
這裏是我工作的一些初步代碼的相關部分,主要來自教程。你仍然需要做其他事情,例如。在你的init方法中創建和設置你的世界和實體,更新職位,應用力量,繪製你的tick方法,實現你的Contact Listener類等等。所有這些參考教程。
std::vector<b2Body *>toDestroy;
std::vector<MyContact>::iterator pos;
CGPoint p;
bool explode = FALSE;
for(pos = _contactListener->_contacts.begin();
pos != _contactListener->_contacts.end(); ++pos) {
MyContact contact = *pos;
if ((contact.fixtureA->GetBody() == _moonBody && contact.fixtureB->GetBody() == _moon2Body) ||
(contact.fixtureA->GetBody() == _moon2Body && contact.fixtureB->GetBody() == _moonBody)) {
NSLog(@"Moons collided!");
explode = TRUE;
p = CGPointMake(PTM_RATIO*(_moonBody->GetPosition().x + _moon2Body->GetPosition().x)/2.,PTM_RATIO*(_moonBody->GetPosition().y + _moon2Body->GetPosition().y)/2.);
if (std::find(toDestroy.begin(), toDestroy.end(), _moonBody) == toDestroy.end()) {
toDestroy.push_back(_moonBody);
}
if (std::find(toDestroy.begin(), toDestroy.end(), _moon2Body) == toDestroy.end()) {
toDestroy.push_back(_moon2Body);
}
}
}
std::vector<b2Body *>::iterator pos2;
for(pos2 = toDestroy.begin(); pos2 != toDestroy.end(); ++pos2) {
b2Body *body = *pos2;
if (body->GetUserData() != NULL) {
CCSprite *sprite = (CCSprite *) body->GetUserData();
[sprite.parent removeChild:sprite cleanup:YES]; }
world->DestroyBody(body);
}
if (explode)
{
explosion = [[CCParticleSun alloc]initWithTotalParticles:250];
explosion.texture = [[CCTextureCache sharedTextureCache] addImage:@"fire.png"];
explosion.autoRemoveOnFinish = YES;
explosion.startSize = 15.0f;
explosion.speed = 30.0f;
explosion.position = p;
explosion.duration = 1.0f;
[self addChild:explosion z:self.zOrder+1];
}
然後,你想要的是一種創建粒子發射系統的方法。我的建議是使用CAEmitterLayer。 Ray Wenderlich有一個很棒的教程:UIKit Particle Systems in iOS 5 Tutorial
- 1. iOS「爆炸圖像」動畫
- 2. IOS:動畫爆炸雲
- 3. 爆炸動畫
- 4. 用jquery爆炸動畫
- 5. jQuery爆炸動畫不起作用
- 6. Hit Sprite Kit上的爆炸動畫
- 7. 爆炸動畫不能代替
- 8. PHP。如何爆炸•
- 9. PHP爆炸串上,如果
- 10. 爆炸()在PHP
- 11. iPhone遊戲:如何動畫飛船爆炸?
- 12. 如何動畫爆炸,吹走周圍的屍體?
- 13. 如何在ios中製作carousal動畫?
- 14. 如何自動爆炸jboss部署
- 15. 如何使爆炸(....)[1]在PHP <5.4上工作?
- 16. PHP爆炸無限制
- 17. 如何使爆炸()包括爆炸字符
- 18. SparkSQL第二爆炸的第一爆炸
- 19. 如何爆炸php結果
- 20. 如何爆炸色譜柱?
- 21. 如何使用爆炸
- 22. 如何爆炸的代價
- 23. 如何爆炸數組值
- 24. 如何爆炸引號
- 25. Ruby&! (和爆炸)操作員
- 26. in_array工作不爆炸
- 27. 爆炸不起作用
- 28. PHP爆炸沒有工作
- 29. 在PySpark中爆炸
- 30. 我如何在「,」在PHP中爆炸?
隨着iPhone的實際爆炸,當然。 – PengOne
如果你想要一個真正的答案,解釋你如何讓你的遊戲有點。你用什麼方法繪製它? OpenGL的? cocos2d的?的UIImageView的? CoreGraphics中?你的問題有很多答案,因爲它缺少細節。 –