1. 程式人生 > >Cocos2d-x 動畫(Animate)的製作

Cocos2d-x 動畫(Animate)的製作

當我們拿到一張一張的動畫圖片後,首先將動畫圖片用TexturePackerGUI做出一個*.plist檔案,接下來就可以開始動手了。

先講一下動畫製作的流程

1.將我們一個一個的動畫圖片建立為CCSpriteFrame, 也就是做成精靈幀

2.再將建立好的CCSpriteFrame加到一個CCAnimation中, 也就是將精靈幀進行打包animation->addSpriteFrame(fram1); 。。。

3.設定動畫幀之間的間隔和迴圈次數

animation->setDelayPerUnit(0.1f);//設定幀與幀之間的間隔

animation->setLoops(kCCRepeatForever);//執行次數

4.將我們打好的包建立(create())成動畫CCAnimate

5.此刻把動畫CCAnimate當做一個精靈來runAction。

程式碼示例:

建立一個精靈,方便後面使用

	CCSprite* spr = CCSprite::create();
	spr->setPosition(ccp(240, 160));
	addChild(spr);

1,傻瓜式版本,但是好理解

//建立精靈幀
	CCSpriteFrame* fram1 = CCSpriteFrame::create("animation/p_2_01.png", CCRectMake(0, 0, 80, 80));
	CCSpriteFrame* fram2 = CCSpriteFrame::create("animation/p_2_02.png", CCRectMake(0, 0, 80, 80));
	CCSpriteFrame* fram3 = CCSpriteFrame::create("animation/p_2_03.png", CCRectMake(0, 0, 80, 80));
	CCSpriteFrame* fram4 = CCSpriteFrame::create("animation/p_2_04.png", CCRectMake(0, 0, 80, 80));
//將動畫幀打包	
        CCAnimation* animation = CCAnimation::create();   
	animation->addSpriteFrame(fram1);
	animation->addSpriteFrame(fram2);
	animation->addSpriteFrame(fram3);
	animation->addSpriteFrame(fram4);</span>
<span style="font-size:14px;">	animation->setDelayPerUnit(0.1f);	//設定幀與幀之間的間隔
	animation->setLoops(kCCRepeatForever);			//執行次數
<span style="font-size:14px;"><span style="white-space:pre">	</span>CCAnimate* animate = CCAnimate::create(animation);
<span style="white-space:pre">	</span>spr->runAction(animate);
夠直觀了吧。接下來我們將上述的步驟做的簡潔一些,也就是我們實際開發中能用的
	CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("animation/plan.plist");
	CCAnimation* animation = CCAnimation::create();
	char nameBuf[100];
	for (int i = 0; i < 8; i++)
	{
		memset(nameBuf, 0, sizeof(nameBuf));
		sprintf(nameBuf, "p_2_0%d.png", i + 1);
		animation->addSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(nameBuf));

	}
	animation->setDelayPerUnit(0.1f);
	animation->setLoops(kCCRepeatForever);
	CCAnimate* animate = CCAnimate::create(animation);
	spr->runAction(animate);</span>
還可以再簡潔一些
	CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("animation/plan.plist");
	CCAnimation* animation = CCAnimation::create();
	char nameBuf[100];
	for (int i = 1; i < 9; i++)
	{
		memset(nameBuf, 0, sizeof(nameBuf));
		sprintf(nameBuf, "p_2_0%d.png", i);
		animation->addSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(nameBuf));

	}
	animation->setDelayPerUnit(0.1f);
	animation->setLoops(kCCRepeatForever);
	CCAnimate* animate = CCAnimate::create(animation);
	spr->runAction(animate);
參考文章:http://www.jellythink.com/archives/752

相關推薦

Cocos2d-x 動畫Animate製作

當我們拿到一張一張的動畫圖片後,首先將動畫圖片用TexturePackerGUI做出一個*.plist檔案,接下來就可以開始動手了。 先講一下動畫製作的流程 1.將我們一個一個的動畫圖片建立為CCSp

Jquery動畫animate的使用及擴展說明

思路 毫秒 eat sha typeof 來看 包含 const show JQuery動畫可以實現非常多的效果,並且支持擴展動畫效果,其中 http://easings.net/zh-cn# 在基於JQuery上作了非常有用的動畫擴展,尤其在一些曲線或拋物線上沒有這些公式

Cocos2d-x學習Cocos2d-x2.2.6搭建你第一個專案

標題有些長,沒有辦法,這裡是為了突出版本Cocos2d-x2.2.6的特性,如果按照我前一篇博文Cocos2d-x學習(一) Cocos2d-x2.2.6安裝前準備,前面的基本工作已經做完了。 一.檢

Android cocos2d-x開發之建立Android工程和編譯

1、進入cocs2d-x目錄,用文字編輯器開啟create-android-project.bat 將_CYGBIN=設定為cycgwin\bin安裝的的絕對路徑。 將_ANDROIDTOOLS設定為android sdk 的tools絕對路徑 將_NDKROOT設定為an

Cocos2d-x學習 Cocos2d-x2.2.6安裝前準備

玩遊戲是一件很有意思的事情,但如果自己可以開發一款遊戲,我想那會更有意思,我有一個關於導演和演員的夢,啊,當然不是那種單一場景的喲,額,貌似這麼說,有點對不住郭德綱,當然現實中去實現這個導演和演員的夢,

Cocos2D-X 】初窺門徑1 製作一個動態的精靈

原理: Cocos2D中有個導演控制整個遊戲流程,導演將場景新增到螢幕上,場景中有各種各樣的演員。 先通過顯示一張圖片來看看Cocos2D遊戲的流程: AppDelegate.cpp bool AppDelegate::applicationDidFinishLaunch

cocos2d-x動作、特效和動畫扭曲動作

    CCActionInterval *actionTo = CCSkewTo::create(2, 70.0f, 0.0f);       CCActionInterval *actionToBack = CCSkewTo::create(2, 0, 0);  

過渡與動畫animate.css庫、動畫原理

## 一、使用animate.css庫 ## Vue 在插入、更新或者移除 DOM 時,提供多種不同方式的應用過渡效果。 在 CSS 過渡和動畫中自動應用 class 可以配合使用第三方 CSS 動畫庫,如 Animate.css 在過渡鉤子函式中使用 J

Cocos2d-JS中使用CocosStudio資源——幀動畫1

在本篇部落格中,我們將通過一個在Cocos2d-JS中使用從CocosStudio匯出的幀動畫資源的例子,來簡要介紹以下內容:利用ActionTimeLine進行動畫切割,如何使用匯出的幀動畫資源。關於幀動畫,由於內容繁雜。我們將分為兩篇進行介紹。本篇將主

【帶著canvas去流浪12】用Three.js製作簡易的MARVEL片頭動畫

目錄 一. 大作業說明 二.基本思路 三.視訊紋理表面修復——UV對映 3.1 問題描述 3.2 紋理貼圖的基本原理-UV對映 3.3 關鍵示例程式碼

【帶著canvas去流浪13】用Three.js製作簡易的MARVEL片頭動畫

目錄 一. 模型的製作 1.1 生成字型模型 1.2 多表面貼圖 二. 鏡頭及動畫 三. 大作業總結 示例程式碼託管在:http://ww

Android 學習之逐幀動畫Frame

http sta ram override start pub fill creat 代碼 幀動畫就是將一些列圖片。依次播放。利用肉眼的“視覺暫留”的原理,給用戶的感覺是動畫的錯覺,逐幀動畫的原理和早期的電影原理是一樣的。 a:須要定義逐幀動畫,能夠通過代碼定義。也能夠

Android Studio之Activity切換動畫

文章 oid out size ref intel tar studio anim 1、上一篇文章“Android Studio之多個Activity的滑動切換(二)”中實現了多個activity之間的滑動切換,可是新切換出的activity大多是從右側進入 2、我們能

js動畫速度

fun esc move keywords nload desc func cache scale <!DOCTYPE html><html><head><meta charset="utf-8" /><meta htt

CSS3動畫:波浪效果

col -1 loading ack css代碼 code load width ase 實現效果 如圖所示: 首先得準備三張圖,一張是淺黃色的背景圖loading_bg.png,一張是深紅色的圖loading.png,最後一張為bolang.png。 css代碼

CSS3-loading動畫

sla 橢圓 clas gif 同時 沒有 .cn idt das CSS3-loading加載動畫 在線示例demo:http://liyunpei.xyz/loading.html 之前發了四篇,二十二個效果,今天再分享六個效果,總計二十八個效果。 二十三、效果二

UWP 使用OneDrive雲存儲2.x api【全網首發】

back existing ace -s -c file school sync sqlite 接上一篇 http://www.cnblogs.com/hupo376787/p/8032146.html 上一篇提到為了給用戶打造一個完全無縫銜接的最佳體驗,UWP開發者最好也

UWP 使用OneDrive雲存儲2.x api【全網首發】

既然 現在 rest 方式 exist 開源 體驗 clas 下載地址 最近開發人臉識別UWP【微識別 / WeRecognition】用到了OneDrive開發,下面把來龍去脈講一下。 下載地址 https://www.microsoft.com/store/produc

css3動畫animation效果3-正方體合成

per rip relative java tom gpo 介紹 ack rotate <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

css3動畫animation效果1-漂浮的白雲

body ini abs mage and run ram info alternate <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">