Cocos2d-x3.2 Animate幀動畫
cocos2d-x-lua 3.3中使用plsit檔案建立動畫,部分程式碼:
--Lua 程式碼實現:使用plist檔案來載入到animation:
isPlaying =false
--create function action
local function OnAction(menuItemSender)
if not isPlaying then
local animation = cc.Animation:create()
animation:addSpriteFrameWithFile("h1.png")
animation:addSpriteFrameWithFile("h2.png")
animation:addSpriteFrameWithFile("h3.png")
animation:addSpriteFrameWithFile("h4.png")
animation:setDelayPerUnit(0.15)
animation:setRestoreOriginalFrame(ture)
local action = cc.Animate:create(animation)
sprite:runAction(cc.RepeatForever:create(action))
isPlaying = true
c++程式碼3中實現方式:
//獲取螢幕大小
Size visibleSize = Director::getInstance()->getVisibleSize();
//auto size = Director::getInstance()->getWinSize();
//幀動畫的建立
//方式一,通過多張圖片來建立
auto
sprite1 = Sprite::create(
"grossini_dance_05.png"
);
sprite1->setPosition(Vec2(visibleSize.width*0.3, visibleSize.height/2));
this
->addChild(sprite1);
//建立幀動畫序列,名詞形式
auto
animation = Animation::create();
for
(
int
i=5; i<11; i++)
{
char
szName[100] = {0};
sprintf
(szName,
"grossini_dance_%02d.png"
, i);
animation->addSpriteFrameWithFile(szName);
}
//設定幀動畫屬性
animation->setDelayPerUnit(2.0f / 6);
//每一幀停留的時間,2秒時間完成6幅圖片顯示,切記要寫成2.0f形式!
animation->setRestoreOriginalFrame(
true
);
//播放完後回到第一幀
auto
animate = Animate::create(animation);
sprite1->runAction(RepeatForever::create(animate));
//方式二,通過一張集合的圖片來建立
//建立2D紋理
auto
texture = Director::getInstance()->getTextureCache()->addImage(
"dragon_animation.png"
);
//建立圖片幀
auto
frame0 = SpriteFrame::createWithTexture(texture, Rect(132*0, 132*0, 132, 132));
auto
frame1 = SpriteFrame::createWithTexture(texture, Rect(132*1, 132*0, 132, 132));
auto
frame2 = SpriteFrame::createWithTexture(texture, Rect(132*2, 132*0, 132, 132));
auto
frame3 = SpriteFrame::createWithTexture(texture, Rect(132*3, 132*0, 132, 132));
auto
frame4 = SpriteFrame::createWithTexture(texture, Rect(132*0, 132*1, 132, 132));
auto
frame5 = SpriteFrame::createWithTexture(texture, Rect(132*1, 132*1, 132, 132));
auto
sprite2 = Sprite::createWithSpriteFrame(frame0);
sprite2->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2));
this
->addChild(sprite2);
//儲存圖片幀
//Vector<cocos2d::AnimationFrame *> array;
Vector<cocos2d::SpriteFrame *> array;
array.pushBack(frame0);
array.pushBack(frame1);
array.pushBack(frame2);
array.pushBack(frame3);
array.pushBack(frame4);
array.pushBack(frame5);
auto
animation2 = Animation::createWithSpriteFrames(array, 0.2f);
//此處createWithSpriteFrames()函式確實每幀間隔時間引數,需自行加上去!!!
sprite2->runAction(RepeatForever::create(Animate::create(animation2)));
//方式三,通過.plist 檔案來建立
auto
cache = SpriteFrameCache::getInstance();
cache->addSpriteFramesWithFile(
"animate.plist"
);
auto
sprite3 = Sprite::createWithSpriteFrameName(
"grossini_dance_05.png"
);
sprite3->setPosition(Vec2(visibleSize.width*0.7, visibleSize.height/2));
this
->addChild(sprite3);
Vector<cocos2d::SpriteFrame *> arr;
char
str[100] = {0};
for
(
int
i=1; i<15; i++)
{
sprintf
(str,
"grossini_dance_%02d.png"
, i);
auto
frame_2 = cache->SpriteFrameCache::getInstance()->getSpriteFrameByName(str);
//3.2版本有改變
arr.pushBack(frame_2);
}
auto
animation3 = Animation::createWithSpriteFrames(arr, 0.2f);
//此處也不要忘記加上時間間隔引數
sprite3->runAction(RepeatForever::create(Animate::create(animation3)));
return
true
;
相關推薦
Cocos2d-x3.2 Animate幀動畫
cocos2d-x-lua 3.3中使用plsit檔案建立動畫,部分程式碼: --Lua 程式碼實現:使用plist檔案來載入到animation: isPlaying =false --create function action local funct
cocos2d-x3.2 下使用多線程
lan ont trac false main 下使用 cpp pub .cpp 事實上在cocos2dx下使用多線程事實上就是用C++去寫,這裏提供幾個簡單的樣例: 原文地址:http://blog.csdn.net/qqmcy/article/details/362
Cocos2d-x3.3beta0創建動畫的3種方式
sprintf action frame idt adding instance 修改 name 工具 1、單獨載入精靈對象 渲染效率低,浪費資源,不推薦用該方法。代碼例如以下:註:代碼僅僅需貼到HelloWorldScene.cpp中就可以。 //First,單獨渲染
cocos2d-x3.2原始碼分析之 ---- 類FileUtils實現把資源放在Resources檔案目錄下達到多平臺的引用
我以TMXTiledMap::Create函式為講解物件。 首先轉到TMXTiledMap::Create的定義中,其定義是在CCFastTMXTiledMap.cpp檔案中,程式碼1如下。其目錄是E:\mycoscos2d\test2\cocos2d\cocos\2d中,這就說明這是與具體平臺無關
cocos2d-x3.2 下使用多執行緒
其實在cocos2dx下使用多執行緒其實就是用C++去寫,這裡提供幾個簡單的例子: 1、 // // PublicScene.cpp // testthirdone // // Created by 杜甲 on 14-7-1. // void hello() {
cocos2d-x3.2中用shader使圖片背景透明
今天有人問我問題,說怎麼實現背景虛化,換句話說,就是把某張圖片的背景顏色(比如白色)給弄沒了,不然貼在螢幕上有白色背景。下面是解決方法。用shader處理了畫素,使黑色背景透明。 Shader.h #ifndef __TestShader__ShaderSprite
Cocos2d-x3.2與OpenGL渲染總結(一)Cocos2d-x3.2的渲染流程
最近幾天,我都在學習如何在Cocos2d-x3.2中使用OpenGL來實現對圖形的渲染。在網上也看到了很多好的文章,我在它們的基礎上做了這次的我個人認為比較完整的總結。當你瞭解了Cocos2d-x3.2中對圖形渲染的流程,你就會覺得要學會寫自己的shader才是最重
楓葉天空Cocos2d-x3.0系列教程二 序列幀動畫
更新日誌: 2014-01-31 增加了cocoStudio動畫編輯器的說明 內容概述: 從今天開始,我們就正式進入cocos2d-x3.0的開發教程了,本篇的核心內容是序列幀動畫。 準備工作 1、首先我們建立一個新的場景類,作為我們本系列教程的一
Cocos2d-x開發實例介紹幀動畫使用
rect http splay end ram nal cache wtl 布爾 以下我們通過一個實例介紹一下幀動畫的使用。這個實比例如以下圖所看到的,點擊Gobutton開始播放動畫,這時候播放button標題變為Stop,點擊Stopbutton能夠停止播放動畫。以下
Cocos2d-x 3.x序列幀動畫
vector 序列幀 bash cpp ams with 序列 object -s Animation : 一個給精靈對象執行的幀動畫對象。 Animate:是將動畫包裝成動作的類。 AnimationCache:管理動畫的單例。 簡介 Animat
對2個網頁幀動畫框架的調研
背景描述 需求中有的地方需要用到動畫,設計動畫的軟體主要有AE和Spine,新入職的動效設計師可能之前是做遊戲動畫設計的,他給了我們一份Spine動畫匯出的資源,於是我開始了Spine的調研。 我們對動畫框架的要求 和寧哥溝通過後,明確了我們開發這邊對於動畫框架的3點要求 能夠完成動畫的渲染
Cocos2d-序列幀動畫
基礎原理 Cocos2d-x中,動畫的具體內容是依靠精靈顯示出來的,為了顯示動態圖片,我們需要不停切換精靈顯示的內容,通過把靜態的精靈變為動畫播放器從而實現動畫效果。動畫由幀組成,每一幀都是一個紋理,我們可以使用一個紋理序列來建立動畫。 我們使用Animat
Cocos幀動畫Animate和Animation建立
本文為作者原創,其中知識內容出自閃電終結者的視訊課程 首先用ppt簡單的做一個幀動畫,把做好的每一張圖片命名為pass01.png pass02.png ….複製到res資料夾下 // 精靈是用於顯示動畫效果,需要寫一個動畫,然後往動畫中新增圖片,在讓精靈
【cocos2d-x 原始碼解析】幀動畫
前言 幀動畫是以序列幀輪放的方式來表現一個動畫,就像膠片電影一樣,一張張畫面進行切換,當切換的間隔足夠小時,人眼就看不出中間的間隔,而是一個流暢的視訊。cocos2d-x 中的幀動畫涉及到三個類 AnimationFrame,Animation 和 Anima
Quick-cocos2d-x播放幀動畫
本文介紹Quick幀動畫執行步驟,C++專案和幀動畫原理請參考: http://blog.csdn.net/ellis1970/article/details/79124686 和C++專案相比,Quick播放幀動畫有些限制條件:無法以離散的圖片檔案播放幀動畫,只支援pli
Cocos2d-x 3.0final 終結者系列教程22Cocos Studio動畫編輯器的幀動畫和骨骼動畫詳解
建立骨骼動畫 首先,開啟Cocos Studio 的 Animation Editor(動畫編輯器),新建一個動畫工程。 同Spine一樣,Cocos Studio動畫編輯器也有兩種模式,但這裡是形體模式和動畫模式。使用者需要在形體模式下組裝角色部件,併為其繫結骨骼;並在動畫模式下調整骨骼相應屬性生成
關於cocos2d序列幀動畫plist檔案的建立
轉載請註明出處 用過的人都知道,cocos2d的動畫編輯器是多麼的坑,自從cocos2d支援Animation後,開始使用Animation動畫了。關於Animation的使用網上也有很多,但是我看了一下,主流的就是兩種方法,一是:手動新增,將plist檔案裡的精靈幀一
cocos2d-x3.0/2.0 win7第一次建立專案需要呼叫到的指令碼(不斷更新維護)//cocos2d-x 教程一
第一步: github上最新的引擎,值得注意的是官網上釋出的引擎是穩定版。選擇哪種就看個人喜好了。但是最新功能你都體驗不到。建議下載git工具然後clone到本地來更新 第二步: 下載後 用cmd終端裡面進入cocos2d-x\tools\project-creator
【cocos2d-js系列問題】cocos2d-js建立幀動畫的兩種方法
不過在這之前,一定要先把圖片載入到記憶體當中去;其實你也可以不加,但是需要換另外一個函式就行; //將plist問價載入到記憶體當中 cc.spriteFrameCache.addSpriteFrames(res.play_plist); 第一種方法: 建立一個空的精靈
cocos2d+lua實現幀動畫播放
使用Cocos2d播放幀動畫的方法有兩種: 先來介紹一下流程: 1.得到動畫的每一幀的陣列FrameArray 2.將幀動畫陣列包裝成Animation物件 3.將Animation物件轉化為可以播放的Action物件 4.使用Sprite來播放Action 第