日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

【IOS-COCOS2D游戏开发之十】添加粒子系统特效并解决粒子特效与LAYER之间的坐标问题;...

發(fā)布時(shí)間:2025/7/14 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【IOS-COCOS2D游戏开发之十】添加粒子系统特效并解决粒子特效与LAYER之间的坐标问题;... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本站文章均為?李華明Himi?原創(chuàng),轉(zhuǎn)載務(wù)必在明顯處注明:?

轉(zhuǎn)載自【黑米GameDev街區(qū)】 原文鏈接:?http://www.himigame.com/iphone-cocos2d/472.html


一直以來Himi特別想在游戲中使用粒子系統(tǒng),但是之前做J2me與Android中發(fā)現(xiàn)使用粒子做的效果都會造成游戲運(yùn)行內(nèi)存的一個(gè)負(fù)擔(dān),所以一直很遺憾,那么在iOS游戲開發(fā)中,可以說必須要使用粒子啦,還是蘋果硬件給力;看過我一開始剛寫cocos2d博文的時(shí)候我就說過因?yàn)閏ocos2d的粒子編輯器很給力,所以也是我選用cocos2d引擎的一部分原因;

粒子編輯器名稱:ParticleDesigner,界面截圖如下:

前兩天粒子編輯器購買成功(很便宜,不到10美金,比圖片打包工具TP便宜多了),耍了兩天后有些后悔,因?yàn)檫@個(gè)粒子編輯器雖然看界面像是開發(fā)編輯器的作者提供了很多的特效一樣,其實(shí)都是cocos2d中例子罷了,但是反過來想,人家給做成可視編輯省去的時(shí)間遠(yuǎn)遠(yuǎn)超值于編輯器的錢了!咳咳,又扯遠(yuǎn)了,回到正題;

至于編輯器或者在cocos2d中添加粒子特效的方法,網(wǎng)上N多資料和教程,這里就不多說了,下面簡單說今天重點(diǎn)的問題;

為了讓大家更清楚的知道問題所在,我新建一個(gè)cocos2d的項(xiàng)目:

1. 首先在屏幕中繪制字符串(將一個(gè)CCLabelTTF對象添加到當(dāng)前Layer中);

1 2 3 4 CCLabelTTF *label = [CCLabelTTF labelWithString:@"Welcome--Himi" fontName:@"Marker Felt" fontSize:64];?? CGSize size = [[CCDirector sharedDirector] winSize];?? label.position =??ccp( size.width /2 , size.height/2 );?? [self addChild: label];

2.然后我將使用粒子編輯器生成的一個(gè)類似隕石導(dǎo)出一個(gè)名為“himi.plist”粒子文件(其中包含粒子的所有屬性),將此文件導(dǎo)入項(xiàng)目中并添加到當(dāng)前l(fā)ayer中;

1 2 3 4 5 6 //添加一個(gè)粒子特效?? CCParticleSystem *tempSystem = [ARCH_OPTIMAL_PARTICLE_SYSTEM particleWithFile:@"himi.plist"];?? //tempSystem.positionType=kCCPositionTypeRelative;//備注1?? tempSystem.positionType=kCCPositionTypeFree;?? tempSystem.position=ccp(100,100);???? [self addChild:tempSystem];

這里的備注1,大家留意下,后面會詳細(xì)說,這里先無視;到此,整個(gè)layer中添加了一個(gè)字符串和一個(gè)粒子特效!運(yùn)行項(xiàng)目 截圖如下:

這里大概說下,粒子我設(shè)定的是一直循環(huán)播放的,是通過編輯器修改的參數(shù),OK,下面開始到重點(diǎn)了:

現(xiàn)在我使用一個(gè)選擇器 [self scheduleUpdate];?,讓當(dāng)前的layer的X坐標(biāo)不斷+3,代碼如下:

1 2 3 -(void)update:(ccTime)time{?? ????self.position=ccp(self.position.x+3,self.position.y);?? }

這里多嘴一句,在cocos2d坐標(biāo)的修改盡可能的使用整體賦值,比如更改坐標(biāo),雖然這里只是更改x軸,但是我仍然對整個(gè)position進(jìn)行的修改;

然后大家都應(yīng)該知道,當(dāng)前的layer上的粒子特效和CCLabelTTF都會跟著移動,但是對不起,這里出現(xiàn)問題,運(yùn)行截圖如下:

這里大家肯定很奇怪,粒子效果應(yīng)該是垂直的,但是實(shí)際卻不是,其實(shí)這個(gè)問題真的很細(xì)節(jié),因?yàn)橐话懔W犹匦Ф际怯糜诤芏痰臅r(shí)間進(jìn)行播放-消失;

這里大概說下,其實(shí)特效的的發(fā)射器也就是粒子的起始座標(biāo)其實(shí)確實(shí)一直跟著layer移動了,但是創(chuàng)建出來后的粒子卻一直顯示在創(chuàng)建時(shí)候的座標(biāo)進(jìn)行自身運(yùn)動,并沒有按照我們想象的移動方式進(jìn)行整體移動;

講了這么多其實(shí)這個(gè)問題一句代碼就解決了,那就是最上面創(chuàng)建粒子特效的代碼的備注1,

1 //tempSystem.positionType=kCCPositionTypeRelative;//備注1

這個(gè)positionType其實(shí)就是設(shè)置當(dāng)前粒子特效中所有粒子的位置類型,默認(rèn)情況下是自由模式,代碼如下:

1 kCCPositionTypeFree

那么備注1的,kCCPositionTypeRelative ?是相對模式,所以只要這里對粒子進(jìn)行設(shè)置位置類型為相對模式即可,問題解決;

OK,童鞋們該說了,這么容易描述清楚的問題與解決方案直接說不就好了 =。 ?=我也這么想的,但是這里我需要說兩點(diǎn):

1.如果博文上來就針對問題,巴拉巴拉的說一堆,那么對于還沒接觸粒子這一塊的童鞋而言,一點(diǎn)用沒有,完全是丈二的和尚,xxxx你懂的~

2.講的這么多,還是我老說的一句話:細(xì)節(jié)決定成敗;其實(shí)細(xì)節(jié)也如同基礎(chǔ),基礎(chǔ)不牢,何談提高?!

好啦,這一篇就到這里;


總結(jié)

以上是生活随笔為你收集整理的【IOS-COCOS2D游戏开发之十】添加粒子系统特效并解决粒子特效与LAYER之间的坐标问题;...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。