【移動(dòng)應(yīng)用開發(fā)技術(shù)】來源于 一般討論 分類 瘋狂ios講義之cocos2d中的動(dòng)畫_第1頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】來源于 一般討論 分類 瘋狂ios講義之cocos2d中的動(dòng)畫_第2頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】來源于 一般討論 分類 瘋狂ios講義之cocos2d中的動(dòng)畫_第3頁(yè)
【移動(dòng)應(yīng)用開發(fā)技術(shù)】來源于 一般討論 分類 瘋狂ios講義之cocos2d中的動(dòng)畫_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

【移動(dòng)應(yīng)用開發(fā)技術(shù)】來源于一般討論分類瘋狂ios講義之cocos2d中的動(dòng)畫

cocos2d中的動(dòng)畫在每一個(gè)游戲當(dāng)中,都有很多各種各樣的動(dòng)畫效果,比如街頭霸王中的旋風(fēng)腿,植物大戰(zhàn)僵尸中豌豆的扭動(dòng)、僵尸的走路、***動(dòng)作等,雖然簡(jiǎn)單的移動(dòng)動(dòng)作也可以實(shí)現(xiàn)這些功能,但是這樣看上去非常的笨拙和不真實(shí)。那么這些效果到底是如何實(shí)現(xiàn)的呢?其實(shí)很簡(jiǎn)單,我們只需要將一系列圖片按照特定的順序排列,然后在精靈對(duì)象上執(zhí)行特定的動(dòng)畫動(dòng)作就可以了。1

cocos2d中動(dòng)畫相關(guān)的類在cocos2d中實(shí)現(xiàn)動(dòng)畫,需要了解以下幾個(gè)類。

q

CCAnimate:該類為一種特殊的動(dòng)作,也稱為動(dòng)畫動(dòng)作。

q

CCAnimation:該類封裝了一個(gè)精靈幀序列和各個(gè)精靈幀之間的延遲時(shí)間,作為精靈播放動(dòng)畫的參數(shù)。

q

CCAnimationCache:該類是一個(gè)單例,作為一個(gè)緩存池來緩存CCAnimation動(dòng)畫。2

簡(jiǎn)單動(dòng)畫效果接下來我們通過示例演示在cocos2d中實(shí)現(xiàn)動(dòng)畫效果。在Xcdoe中使用cocos2d模板創(chuàng)建一個(gè)項(xiàng)目,命名為“AnimationTest”,加入準(zhǔn)備好的圖片資源,本例為8張植物大戰(zhàn)僵尸中的僵尸圖片,利用這些單獨(dú)的圖片創(chuàng)建動(dòng)畫,完成一個(gè)僵尸走路的動(dòng)畫效果。實(shí)現(xiàn)代碼如下。程序清單:codes/13/13.11/AnimationTest/AnimationTest/HelloWorldLayer.m-(id)init{

if((self=[superinit])){

CGSizewinSize=[[CCDirectorsharedDirector]winSize];

CCSprite*bgSprite=[CCSpritespriteWithFile:@"gamebg.png"];

bgSprite.position=ccp(winSize.width/2,winSize.height/2);

[selfaddChild:bgSprite];

//創(chuàng)建僵尸精靈,并設(shè)置坐標(biāo)位置在屏幕之外

CCSprite*zSprite=[CCSpritespriteWithFile:@"z_00_01.png"];

zSprite.position=ccp(winSize.width+zSprite.contentSize.width/2,winSize.height/2);

[selfaddChild:zSprite];

//創(chuàng)建CCAnimation動(dòng)畫,指定動(dòng)畫幀的內(nèi)容

CCAnimation*anim=[CCAnimationanimation];

[animaddSpriteFrameWithFilename:@"z_00_01.png"];

[animaddSpriteFrameWithFilename:@"z_00_02.png"];

[animaddSpriteFrameWithFilename:@"z_00_03.png"];

[animaddSpriteFrameWithFilename:@"z_00_04.png"];

[animaddSpriteFrameWithFilename:@"z_00_05.png"];

[animaddSpriteFrameWithFilename:@"z_00_06.png"];

[animaddSpriteFrameWithFilename:@"z_00_07.png"];

[animaddSpriteFrameWithFilename:@"z_00_08.png"];

//創(chuàng)建animAction動(dòng)畫,restoreOriginalFrame:YES

//可以讓精靈對(duì)象在動(dòng)畫執(zhí)行完后恢復(fù)到最初狀態(tài)

idanimAction=[CCAnimateactionWithDuration:1.5fanimation:anim

restoreOriginalFrame:YES];

//定義一個(gè)動(dòng)作,重復(fù)執(zhí)行CCAnimate動(dòng)畫

idrepeatanimAction=[CCRepeatForeveractionWithAction:animAction];

//定義一個(gè)動(dòng)作,讓精靈對(duì)象移動(dòng)到特定的位置

idmoveTo=[CCMoveToactionWithDuration:10.0f

position:ccp(-zSprite.contentSize.width/2,winSize.height/2)];

//僵尸精靈重復(fù)執(zhí)行動(dòng)畫動(dòng)作和移動(dòng)動(dòng)作

[zSpriterunAction:repeatanimAction];

[zSpriterunAction:moveTo];

}

returnself;}-(id)init{

if((self=[superinit])){

CGSizewinSize=[[CCDirectorsharedDirector]winSize];

//①讀取plist文件將精靈幀紋理添加到精靈幀緩存當(dāng)中

[[CCSpriteFrameCachesharedSpriteFrameCache]

addSpriteFramesWithFile:@"animation.plist"];

//②創(chuàng)建一個(gè)精靈表單

CCSpriteBatchNode*batchNode=[CCSpriteBatchNode

batchNodeWithFile:@"animation.png"];

//③將精靈表單作為層的子節(jié)點(diǎn)添加到層當(dāng)中

[selfaddChild:batchNode];

//④創(chuàng)建背景精靈添加到精靈表單中

CCSprite*bgSprite=[CCSpritespriteWithSpriteFrameName:@"gamebg.png"];

bgSprite.position=ccp(winSize.width/2,winSize.height/2);

[batchNodeaddChild:bgSprite];

//⑤創(chuàng)建僵尸精靈,設(shè)置坐標(biāo)位置在屏幕之外

CCSprite*zSprite=[CCSpritespriteWithSpriteFrameName:@"z_00_01.png"];

zSprite.position=ccp(winSize.width+zSprite.contentSize.width,winSize.height/2);

//⑥創(chuàng)建一個(gè)數(shù)組用來保存動(dòng)畫

NSMutableArray*array=[NSMutableArrayarray];

//遍歷所有圖片,然后從精靈幀緩存中獲取與圖片名稱相對(duì)應(yīng)的精靈幀保存到數(shù)組當(dāng)中

for(inti=1;i<=8;i++){

NSString*fileName=[NSStringstringWithFormat:@"z_00_0%i.png",i];

CCSpriteFrame*frame=[[CCSpriteFrameCachesharedSpriteFrameCache]

spriteFrameByName:fileName];

[arrayaddObject:frame];

}

//⑦創(chuàng)建一個(gè)動(dòng)畫并設(shè)計(jì)成重復(fù)動(dòng)作

idanimation=[CCAnimationanimationWithSpriteFrames:arraydelay:0.1f];

idanimate=[CCAnimateactionWithAnimation:animation];

idrepeate=[CCRepeatForeveractionWithAction:animate];

//⑧創(chuàng)建一個(gè)CCMoveTo讓精靈移動(dòng)到特定的位置

idmoveTo=[CCMoveToactionWithDuration:10.0f

position:ccp(-zSprite.contentSize.width/2,winSize.height/2)];

//⑨讓僵尸精

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論