多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 創建精靈

創建精靈

來源:程序員人生   發布時間:2014-10-02 08:00:01 閱讀次數:2809次

精靈:Cocos2d中的精靈和其他游戲引擎中的精靈相似,它可以移動,旋轉,縮放,執行動畫,并接受其他轉換。

Cocos2dx的Sprite(精靈)由Texure,frame和animation組成,由openes負責渲染。主要的類關系如下: 簡單過程可描述為:使用Texture2D加載圖片,可以用Texture2D生成對應的SpriteFrame(精靈幀),將SpriteFrame添加到Animation生成動畫數據,用Animation生成Animate(就是最終的動畫動作),最后用Sprite執行這個動作。

建立一個工程,工程文件結構如下圖所示               解決方案中的結果

                                              

然后在Resource文件夾中添加一張png格式的圖片


在Sprite.h文件中添加下面的代碼

#ifndef _Sprite_H_ #define _Sprite_H_ //防止代碼重包含 #include "cocos2d.h" USING_NS_CC; class Sprite : public CCLayer { public: //創建一個場景 static CCScene* scene(); //初始化場景 bool init(); //菜單回調函數 void menuCloseCallback(CCObject* pSender); //用于創建創建、精靈、或者層(同create()) CREATE_FUNC(Sprite); }; #endif


將AppDelegate.cpp中bool AppDelegate::applicationDidFinishLaunching() 中的

// create a scene. it's an autorelease object CCScene *HelloWorld = Sprite::scene();

改成

// create a scene. it's an autorelease object CCScene *pScene = Sprite::scene();


Sprite.cpp中的代碼

#include "Sprite.h" #include "HelloWorldScene.h" CCScene* Sprite::scene() { //創建一個場景 CCScene* s = CCScene::create(); //創建一個層 Sprite* layer = Sprite::create(); //將層加到場景中 s->addChild(layer); //返回場景 return s; } //初始化精靈 bool Sprite::init() { }


創建精靈的方式:

1、通過文件創建精靈

過程:調用 CCLayer::init()->>>創建精靈->>將精靈加到場景中->>獲取窗口的大小->>設置精靈在場景顯示的位置

//先調用父類的init函數 CCLayer::init(); //通過文件創建精靈 CCSprite* sprite = CCSprite::create("aaaa.png"); //將精靈添加到場景中 addChild(sprite); //獲取窗口的大小 CCSize winSize = CCDirector::sharedDirector()->getWinSize(); //設置顯示精靈的位置(設置成精靈在場景的中間顯示) sprite->setPosition(CCPoint(winSize.width / 2, winSize.height / 2)); return true;

將代碼放到Sprite.cpp下的bool Sprite::init()中編譯運行:程序的執行結果如下



2、通過紋理創建精靈

過程:調用CCLayer::init()->>創建紋理->>通過紋理創建精靈->>將精靈添加到場景中->>獲取窗口的大小->>設置精靈在場景中顯示的位置

程序代碼:

<span style="color:#000000;"> //先調用父類的init函數 CCLayer::init(); //創建紋理 CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("aaaa.png"); //通過紋理創建精靈 CCSprite* sprite = CCSprite::createWithTexture(texture); //將精靈添加到場景中 addChild(sprite); //獲取窗口的大小 CCSize winSize = CCDirector::sharedDirector()->getWinSize(); //設置顯示精靈的位置(設置成精靈在場景的中間顯示) sprite->setPosition(CCPoint(winSize.width / 2, winSize.height / 2)); return true;</span>


將代碼放到Sprite.cpp下的bool Sprite::init()中編譯運行:程序的執行結果如下



3、通過精靈幀創建精靈

過程:調用CCLayer::init()->>創建紋理->>得到紋理的大小->>創建精靈幀->>創建精靈->>將精靈添加到場景中->>獲取窗口的大小->>設置精靈在場景中顯示的位置

程序代碼:

//先調用父類的init函數 CCLayer::init(); //創建紋理 CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("aaaa.png"); //得到紋理大小 CCSize size = texture->getContentSize(); //創建精靈幀 CCSpriteFrame* frame = CCSpriteFrame::createWithTexture(texture, CCRectMake(size.width/4,size.height/4, size.width/2, size.height/2)); //創建精靈 CCSprite* sprite = CCSprite::createWithSpriteFrame(frame); //將精靈添加到場景中 addChild(sprite); //獲取窗口的大小 CCSize winSize = CCDirector::sharedDirector()->getWinSize(); //設置顯示精靈的位置(設置成精靈在場景的中間顯示) sprite->setPosition(CCPoint(winSize.width / 2, winSize.height / 2)); return true


將代碼放到Sprite.cpp下的bool Sprite::init()中編譯運行:程序的執行結果如下


4、通過精靈幀緩存創建精靈

過程:調用CCLayer::init()->>獲取窗口的大小->>創建紋理->>得到紋理的大小->>通過紋理創建精靈幀->>通過精靈幀創建精靈幀緩存->>通過精靈幀緩存創建精靈->>將精靈添加到場景中->>獲取窗口的大小->>設置精靈在場景中顯示的位置

程序代碼:

//先調用父類的init函數 CCLayer::init(); //獲取窗口的大小 CCSize winSize = CCDirector::sharedDirector()->getWinSize(); //創建紋理 CCTexture2D* texture = CCTextureCache::sharedTextureCache()->addImage("aaaa.png"); //得到精靈的大小 CCSize size = texture->getContentSize(); //創建精靈幀 CCSpriteFrame* frame = CCSpriteFrame::createWithTexture(texture, CCRectMake(size.width/4,size.height/4, size.width/2, size.height/2)); //創建精靈幀緩存 CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFrame(frame, "aaaa.png"); //創建精靈 CCSprite* sprite = CCSprite::createWithSpriteFrameName("aaaa.png"); //設置精靈的位置 sprite->setPosition(CCPoint(winSize.width / 2, winSize.height / 2)); //將精靈添加到場景中 addChild(sprite); //設置顯示精靈的位置(設置成精靈在場景的中間顯示) sprite->setPosition(CCPoint(winSize.width / 2, winSize.height / 2)); return true;

將代碼放到Sprite.cpp下的bool Sprite::init()中編譯運行:程序的執行結果如下



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 在线观看精品福利片香蕉 | 91在线色 | 伊人久久久综在合线久久在播 | 亚洲网站免费 | 欧美综合精品 | 亚洲天堂中文网 | 啪啪大片 | 亚洲十欧美十日韩十国产 | 一区二区三区精品国产 | 午夜三级视频 | 国产欧美视频一区二区三区 | 波多野结衣一二三区 | 日本一区二区高清不卡 | 国产极品嫩模在线观看91精品 | 三级成人做爰视频 | 精品国产v| 最近中文字幕 | 日本欧美成人 | 男女xx网站| www亚洲天堂 | 欧美freesex8一10 | 免费播放欧美毛片欧美a | 美国一级毛片片aa免 | 欧美精品v欧洲精品 | 久久久久久免费一区二区三区 | 一区二区三区在线看 | 黄色的免费网站 | 亚洲综合图片人成综合网 | 激情小视频 | 一级一级特黄女人精品毛片视频 | 午夜a级片 | 狂野欧美性猛交xxxx免费按摩 | 亚洲另类在线观看 | 视频三区精品中文字幕 | 精品日韩一区二区三区 | 成人一区视频 | 国产区图片区小说区亚洲区 | 亚洲视频在线观看网址 | 一区二区三区在线免费观看视频 | 456免费视频 | 香蕉在线精品一区二区 |