



下載本文檔
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 刀具進(jìn)口合同范本
- 出租鋼管書架合同范本
- 2025年吉林貨運(yùn)從業(yè)資格證怎么考試
- 代租場(chǎng)地合同范本
- 公路施工項(xiàng)目合同范本
- 農(nóng)田收回合同范本
- 北京市合同范本密碼
- 亞馬遜員工合同范本
- 制作推廣合同范本
- rpo服務(wù)合同范本
- 2024中智集團(tuán)招聘重要崗位高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 高鈣血癥護(hù)理查房課件
- 《2024版 CSCO非小細(xì)胞肺癌診療指南》解讀
- 圍填海項(xiàng)目生態(tài)保護(hù)修復(fù)方案編制技術(shù)指南(試行)
- 2024年工業(yè)和信息化部應(yīng)急通信保障中心招聘高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 物體打擊傷亡事故應(yīng)急處置卡
- 2024-2030年中國(guó)飛機(jī)AFP和ATL復(fù)合材料行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 《祝?!饭_課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì) 統(tǒng)編版高中語(yǔ)文必修下冊(cè)-1
- 20兆瓦光伏漁光互補(bǔ)電站項(xiàng)目可行性研究報(bào)告
- 新疆維吾爾自治區(qū)2024年中考英語(yǔ)真題【附真題答案】
- 七年級(jí)英語(yǔ)上冊(cè)(人教版2024)新教材解讀課件
評(píng)論
0/150
提交評(píng)論