Cocos2d是一個比較流行的iphone游戲開發框架,據說在 AppStore 上已有超過 100 個游戲是基亍 Cocos2D-iPhone。其中 3 個由此 迚入過 TOP 10 的排名。其中的 StickWars 更是曾排名第一。 現在,讓我們來開始Cocos2d的學習之旅吧!
一、安裝下載
Cocos2d下載地址: http://code.google.com/p/cocos2d-iphone/downloads/list
當前最新版本為 1.0。本教程選用的是穩定版本0.99.5。
下載文件為 targ.gz格式,將其解壓到某個目錄下,打開該目錄,找到 install-templates.sh 文件,這個就是 Cocos2d的安裝腳本。
你可以直接在終端里運行這個腳本進行安裝,但如果你的 Xcode沒有安裝在默認目錄 下,則你需要在命令中添加一個參數。
例如,你的 Mac中可能同時存在一個Xcode版本(3.2.5),安裝目錄為:/Users/$yourname$/Developer,如果你想將Cocos2d安裝到這個Xcode(3.2.5),則需要使用用命令:
./install-templates.sh /Users/$yourname$/Developer
來進行安裝。
安裝完畢,你可以打開 Xcode,新建Project,你會在User Templates目錄下看到多了4個Cocos2d Application模板(如果是0.99版本,則只有3個模板):
二、新建 cocos2d Applications 項目
新建一個 cocos2d Applications 項目,編譯運行效果如下:
打開 HelloWorldScene.h,可以看到如下代碼:
#import "cocos2d.h"
// HelloWorld Layer
@interface HelloWorld : CCLayer
{
}
// returns a Scene that contains the HelloWorld as the only child
+( id ) scene;
@end
首先, import指令導入了cocos2d.h,在這個.h文件中,已經包含(import)了cocos2d的所有類。因此我們導入了cocos2d.h后,就不需要再一個個導入要用到的cocos2d類了。
其次, HelloWorldScene.h中定義了一個CCLayer子類。CCLayer即所謂“層”的概念。層是一個容器的概念,cocos2d在層上放置多個動畫元素,如文字、標簽、圖片、菜單,此外層接收觸摸和加速器事件。
第三,定義了一個靜態方法,返回了一個—— Scene,這個Scene實際上包含了一個層——HelloWorld,這是一個不錯的實例化方法。Coco2d中Scene的概念,類似于電影中“場景”的概念--由于受舞臺空間或屏幕空間的限制,一個情節往往只能在固定的空間環境中展現,而電影往往是由許多個情節構成 , 隨著劇情的發展,場景也需要改變,新的場景需要產生。所以電影就會在一幕幕場景中進行切換 ,這種切換被稱為“轉場”。
切換到HelloWorldScene.m :
#import "HelloWorldScene.h"
// HelloWorld implementation
@implementation HelloWorld
上面導入了 HelloWorldScene.h并實現了 HelloWorld類。O-C中,文件名不見得需要和類名一致。
+( id ) scene
{
……
}
這個方法就不介紹了,和前面說過的一樣。
-( id ) init
{
if ( ( self =[ super init ] )) {
CCLabelTTF *label = [ CCLabelTTF labelWithString : @"Hello World" fontName : @"Marker Felt" fontSize : 64 ];
CGSize size = [[ CCDirector sharedDirector ] winSize ];
label. position = ccp ( size. width / 2 , size. height / 2 );
[ self addChild : label];
}
return self ;
}
init方法中,創建了一個標簽 CCLabelTTF (以前是CCLabel)并讓他居中。ccp函數是 CGPointMake函數的縮寫。
接下來,看一下應用程序委托,如果你有過 Cocoa編程的經驗,那么會發現這就是一個UIApplicationDelegate,它的主要方法是 applicationDidFinishLaunching:( UIApplication *)application :。
,并將 EAGLView綁定到
首先取得 Director——導演。導演是cocos2d程序的統籌者和協調者,負責整個應用程序的主窗口的創建,以及每個場景在時間線上的先后順序。
CCDirector *director = [ CCDirector sharedDirector ];
然后創建 EAGLView實例。 EAGLView 派生亍類 UIView, 蘋果公司用它來實現 OpenGL 輸出支持,以支持OpenGL ES 編程:
EAGLView *glView = [EAGLView viewWithFrame:[ window bounds ]
pixelFormat:kEAGLColorFormatRGB565
depthFormat: 0
];
并將 EAGLView綁定到導演的openGLView屬性:
[director setOpenGLView :glView];
設置橫屏:
setDeviceOrientation:kCCDeviceOrientationLandscapeLeft];
設置幀間隔(尚未實現):
[director setAnimationInterval : 1.0 / 60 ];
設置幀率顯示,即屏幕左下角不斷變化的數字:
[director setDisplayFPS : YES ];
設置渲染格式位 32位RGB:
[ CCTexture2D setDefaultAlphaPixelFormat : kCCTexture2DPixelFormat_RGBA8888 ];
移除閃屏,即一開始的那個 coco2d Logo標志的屏幕:
[ self removeStartupFlicker ];
顯示 HelloWorld文字標簽的場景:
[[ CCDirector sharedDirector ] runWithScene : [ HelloWorld scene ]];
}
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
