【Cocos2D-X 】初窺門徑(1) 製作一個動態的精靈
原理:
Cocos2D中有個導演控制整個遊戲流程,導演將場景新增到螢幕上,場景中有各種各樣的演員。
先通過顯示一張圖片來看看Cocos2D遊戲的流程:
AppDelegate.cpp
上邊的程式碼添加了一個場景GameScence,下面看看具體實現:bool AppDelegate::applicationDidFinishLaunching() { // 初始化導演 CCDirector *pDirector = CCDirector::sharedDirector(); pDirector->setOpenGLView(CCEGLView::sharedOpenGLView()); // 開啟FPS pDirector->setDisplayStats(true); // 設定FPS the default value is 1.0/60 if you don't call this pDirector->setAnimationInterval(1.0 / 60); // 建立一個場景 CCScene *pScene = GameScence::scene(); // 執行此場景 pDirector->runWithScene(pScene); return true; }
GameScence.h
#include "cocos2d.h"
#include "Box2D/Box2D.h"
class GameScence : public cocos2d::CCLayer
{
public :
bool init();
//必須重寫scene()
static cocos2d::CCScene* scene();
//相當於create函式,是重寫了CCLayer裡的create函式
CREATE_FUNC(GameScence);
};
GameScence.cpp
#include "GameScene.h" using namespace cocos2d; CCScene* GameScence::scene() { CCScene * scene = NULL; do { scene=CCScene::create(); GameScence* gameScene=GameScence::create(); scene->addChild(gameScene); }while(0); return scene; }; bool GameScence::init() { bool bRet = false; do { //從圖片建立一個精靈 CCSprite* pSprite = CCSprite::create("bg.png"); //獲取螢幕大小 CCSize size = CCDirector::sharedDirector()->getWinSize(); // 設定精靈在場景中的位置,座標從左下角0,0 pSprite->setPosition(ccp(size.width/2, size.height/2)); // 新增精靈到場景中 this->addChild(pSprite, 0); }while(0); bRet=true; return bRet; };
程式碼中有註釋,就不在重複敘述了,
下面是效果圖:
怎麼讓其顯示一個動態的精靈呢,下面是修改後的init()
bool GameScene::init() { bool bRet = false; do { CCSprite* pMap = CCSprite::create("bg.png"); CCSize size = CCDirector::sharedDirector()->getWinSize(); pMap->setPosition(ccp(size.width/2, size.height/2)); this->addChild(pMap, 0); CCSprite* sprite ; CCArray* pSpriteArray=CCArray::createWithCapacity(4); for(int i=0;i<4;i++) { //擷取frame CCSpriteFrame* pFrame =CCSpriteFrame::create("role.png",CCRectMake(i*82,62*2,82,62)); pSpriteArray->addObject(pFrame); //將精靈新增到場景,預設第一幀圖片 if(i==0){ sprite= CCSprite::createWithSpriteFrame(pFrame); sprite->setPosition(ccp(200,100)); addChild(sprite); } } //從array建立動畫 CCAnimation *splitAnimation=CCAnimation::createWithSpriteFrames(pSpriteArray,0.1f); sprite->runAction(CCRepeatForever::create(CCAnimate::create(splitAnimation))); }while(0); bRet=true; return bRet; };
製作動態的圖片麻煩,就直接貼圖了:
相關推薦
【Cocos2D-X 】初窺門徑(1) 製作一個動態的精靈
原理: Cocos2D中有個導演控制整個遊戲流程,導演將場景新增到螢幕上,場景中有各種各樣的演員。 先通過顯示一張圖片來看看Cocos2D遊戲的流程: AppDelegate.cpp bool AppDelegate::applicationDidFinishLaunch
【Cocos2D-X 】初窺門徑(5)CCAction:動作
//移動到,1s, pRole->runAction(CCMoveTo::create(1,ccp(300,300))); //跳躍到,1s,高度50,分為5步 pRole->runAction(CCJumpTo::create(1,ccp(300,300),50,5)); //放
【Cocos2D-X 】初窺門徑(10)解決中文亂碼
用資原始檔儲存字串,格式UTF-8,這樣讀取xml檔案,然後顯示就不會亂碼了。 這樣做還有一個好處就是方便以後國際化。 xml檔案: <dict> <key>Hello</key> <string>Hi~可以正常顯示中
【Cocos2D-X 】初窺門徑(2) 場景的切換及特效
//CCTransitionJumpZoom::transitionWithDuration(t, s);//跳躍式,本場景先會縮小,然後跳躍進來 //CCTransitionFade::transitionWithDuration(t, s);//淡出淡入,原場景
【Cocos2D-X 遊戲引擎】初窺門徑(11)CCUserDefault:儲存資料
儲存簡單的資料用CCUserDefault和Android中的SharedPreferences一樣,都是以鍵值對儲存的。 //獲取bool型值 bool getBoolForKey(const char* pKey, bool defaultValue = fals
【軟考】——面向物件技術(1)
面向物件???——》一種具有構造繼承性、 封裝性和多型的程式設計語言族的命名; ???——》一種程式設計風格; 面向物件???——》物件 + 分類 + 繼承 +
【網路學習】TCP/IP協議(1)
什麼是TCP/IP? 上帝創造了人類,雖然都是人但是語言不一樣,交流起來也是很不明白,當我們中國人與外國人交流的時候就需要一種共同的交流方式比如【漢語】,協議顧名思義則是商量謀劃而制定的規則 TCP\IP中文譯為傳輸控制協議\因特網互聯協議,TCP\IP不是一個
【資料結構】基礎知識點整理(1)
1.線性是線性,順序是順序,線性是邏輯結構,順序是儲存結構,兩者不是一一個概念,線性是指一一個元素後繼只有唯一的一一個元素或節點,非線性是一一個元素後面可以有多個後繼或前繼節點,順序是指儲存結構連續,例如陣列是順序的,連結串列不是順序的,但他們都是線性的。當然順序也可以是非線
【iOS開發】CoreText的使用(1)
本文技術點涉及到NSAttrbutedString 簡述 CoreText是用於處理文字和字型的底層技術,它直接和Core Graphics(又名Quartz2D)交流。Quartz是一個2D圖形渲染引擎,能夠處理OS X和iOS的圖形顯示問題 Quartz能夠直接處理
【尚矽谷】spring學習筆記(1):HelloWorld
1、安裝SPRING TOOL SUITE 這個 Eclipse 外掛。2、搭建spring開發環境,引入jar包。3、建立spring專案3.1、建立一個HelloWorld類public class HelloWorld { private String name;
【C++11】物件訊息匯流排(1)
部分Demo和結論引用自<深入應用C++11程式碼優化與工程>這本書 什麼是訊息匯流排? 物件的關係之間一般有:依賴、關聯、聚合、組合和繼承,他們的耦合程度也是依次加強!大規模開發過程中,物件很多,關聯關係很複雜,沒有統一、簡介的方法去管理物
【Cocos2d-x】坐標系和圖層
pac 多說 pan art world 地圖 分辨 play instance 在Cocos2D-X中,存在四種坐標系: 1、OpenGL坐標系:該坐標系原點在屏幕左下角。x軸向右,y軸向上。這也就是cocos2dx中用到的坐標系所以沒啥好說的。 2、屏幕坐標系(UI
JZOJ5947. 【NOIP2018模擬11.02】初音未來(miku)
Description Hercier作為一位喜愛Hatsune Miku的OIer,痛下決心,將Vocaloid買回了家。開啟之後,你發現介面是一個長為n的序列,代表音調,並形成了全排列。你看不懂日語,經過多次嘗試,你只會用一個按鈕:將一段區間按升序排序。不理解音樂的Hercier決定
【Cocos2d-x】截圖分享功能
Cocos2d-x截圖實現 #include "cocos2d.h" USING_NS_CC; // 設定紋理寬、高、畫素質量 CCRenderTexture* tx = CCRenderTexture::create(CCDirector::sharedDirec
【Cocos2d-x】圖片描邊的一種比較好的shader實現方法
轉載: http://blog.csdn.net/u011281572/article/details/44999609 圖片描邊需求如下: 1. 可指定描邊寬度2. 可指定描邊顏色3. 可用於字型 圖片描邊我所知道的方式有以下幾種: 1. Cocos2d-x 3.x中,
【Cocos2d-x】之編譯so檔案出錯
現在用的是cocos2d-x3.6版本,這個版本新建的工程第一次在eclipse上跑的時候,會出現找不到Cocos2d-x在Android平臺的Java類,錯誤如圖: 這些類位於:<遊戲工程路
【Cocos2d-x】物理引擎使用入門
相關概念 什麼是物理引擎? 科學模型:科學研究中對事物的合理簡化。 物理引擎是一個計算機程式模擬牛頓力學模型,使用質量、速度、摩擦力和空氣阻力等變數。 可以用來預測這種不同情況下的效果。它主要用在科學模擬和電子遊戲中。 一般,物理引擎只負責物理計算,而不進行畫面渲染。
【cocos2d-x】建構函式與初始化
出自圖書《製作自己的捕魚達人》 在cocos2d-x中建立物件的方法與C++開發者的習慣不同,在C++中,我們只需要呼叫類的建構函式即可建立一個物件,即可直接建立一個棧上的值物件, 也可以使用new操作符建立一個指標,指向堆上的物件,而在cocos2d-
【cocos2d-x】cocos2d-x 3.2 在 NDK10下編譯出錯的解決方法
最近使用cocos2d-x 3.2 在NDK10 版本下打包APK,出現了一個特別奇怪的錯誤。 1. /Users/minggo/SourceCode/cocos2d-x/build/../cocos/./3d/CCBundleReader.cpp:94:
【Cloud Foundry】Could Foundry學習(一)——Could Foundry淺談
art lock mod out isp ted 組成 .com pop 在閱讀的過程中有不論什麽問題。歡迎一起交流 郵箱:[email protected]/* */ QQ:1494713801 Cloud Foundry是VMware