自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPhone教程 Cocos2d開發(fā)全過程

移動開發(fā) iOS 游戲開發(fā)
本文介紹的是Cocos2d iPhone教程,游戲開發(fā)的友們應該關注本篇文章,我們先來看內容。

Cocos2d iPhone教程 是本文要介紹內容,作為游戲開發(fā)中2D圖形的一篇文章,我們先來看內容。Cocos2D-iPhone是一個開源框架,利用它可以非常容易的在iPhone上開發(fā)2D游戲。它提供了物理,精靈(sprites),時差卷軸(parallax scrolling),支持iPhone touch和accelerator等很多功能。

現(xiàn)在在App Store上已經有不少用Cocos2D開發(fā)的游戲--所以你也可以用它做出很棒的游戲。Cocos2D的開發(fā)人員甚至跟大家分享了一些使用這個開發(fā)框架的最佳實踐。

好不容易找到一篇比較詳細的基礎使用教程,翻譯成中文供大家學習.

最近 Monocle Studios LLC發(fā)布了其下第一款產品”touchDefense“,這是一款iPhone游戲.如果沒有Cocos2d iPhone,我們不可能這么快讓這個游戲在AppStore上架.我們應該回饋這個項目.這個白皮書是首要的第一步.

開始Cocos2d iPhone開發(fā).

加入IDP.

最首要的一步是注冊成為一個專業(yè)的iPhone開發(fā)者.對于開發(fā)而言它是免費的(盡管當你需要在真機上運行你的程序時必須支付99美金),和其他的方法比它可快多了.
接下來你需要下載iPhone SDK,這個下載的工程可有點大.你會恨不得它以最快的速度下載下來.

XCode入門.

下一步,我們需要在XCode中建立一個標準的iPhone項目.

點擊File -> New Project

選擇iPhone OS一欄下的Application

最后選擇    Window-Based Application模板

點擊Choos按鈕

Cocos2d iPhone教程 全過程

接下來給這個項目命名(我們將其命名為SimpleGame,在本例中你就和我們一樣命名吧,閱讀教程的時候就不會混亂了),并且保存在某個適當?shù)奈恢?接下來這個項目將被打開,如下圖:

Cocos2d iPhone教程 全過程

現(xiàn)在為您的項目添加版本控制!我們喜歡用 Git , 這使得建立一個新的項目庫非???

  1. cd SimpleGame  
  2. git init  
  3. git commit -a -m "Initial commit." 

你可能更喜歡用Mercurial 或 SVN, 他們同樣很棒, 那就按自己的喜好用吧!

在我們繼續(xù)之前,先點擊一下Build and Go按鈕,你在就能iPhone模擬器中看見一個只有白色的屏幕(這就是SimpleGame最開始的樣子).

去除window和nib文件.

基于Cocos2d iPhone的項目并不需要使用nib或者標準的UI組件,所以我們需要對這個XCode創(chuàng)建的默認項目進行一些修改.(很不幸,在使用Cocos2d iPhone時沒有不需要修改就能用的完美模板).首先, 刪除MainWindow.xib文件.

然后, 在Info.plist文件中刪除Main nib file base name這條內容.

Cocos2d iPhone教程 全過程

接下來我們還將要修改一些源文件,替換main.m中的一些內容,替換結果如下:

  1. #import <UIKit/UIKit.h>int main(int argc, char *argv[]) {  
  2. NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];  
  3. int retVal = UIApplicationMain(argc, argv, nil,  
  4. @”SimpleGameAppDelegate”);  
  5. [pool release];  
  6. return retVal;  

其次是修改SimpleGameAppDelegate.h,修改后如下:

  1. #import <UIKit/UIKit.h>@interface SimpleGameAppDelegate : NSObject <UIApplicationDelegate> {  
  2. }  
  3. @end 

最后, 修改SimpleGameAppDelegate.m,修改后如下s:

  1. #import “SimpleGameAppDelegate.h”@implementation SimpleGameAppDelegate  
  2. - (void)applicationDidFinishLaunching:(UIApplication *)app {  
  3. }  
  4. @end 

這些修改弄好之后可以先不用管他們了,當你開始一個新的項目時,記得回這里看看就行(最好你能以此創(chuàng)建一個Cocos2d iPhone項目的模板,那你就能一勞永逸了).

整合Cocos2d iPhone.

我們下一步是從Google Code上將Cocos2d iPhon最新的庫抓下來.進入Cocos2d iPhone下載頁 ,并且選擇0.7.0 版本 ,將其下載下來.

  1. tar -xvf cocos2d-iphone-0.7.0.tar 

接下來回到你的項目中

選 擇Project菜單 -> Add Files to Project …然后瀏覽你剛剛解壓縮的目錄,將這個目錄添加到您的項目中,你可以勾選   Copy items into destination group's folder (if needed)前的復選框,點擊Add按鈕.

Cocos2d iPhone教程 全過程

接下來,這是很重要的一個步驟,刪除External\Chipmunk目錄下的Demo文件夾.在這之后呢,你可以先嘗試編譯一下你的項目,確保沒有什么問題.(這種編譯過程中的問題,早發(fā)現(xiàn)早修復,以后再找問題會相對麻煩很多)

現(xiàn)在,回到項目窗口選擇   Project->Add Files to Project  將cocos2d-iphone-0.7.0/cocos2d文件夾加入你的項目中.

重復上面的操作將cocos2d-iphone-0.7.0/cocoslive和 cocos2d-iphone-0.7.0/experimental文件夾加入到你的項目中.

最后,將cocos2d-iphone-0.7.0/cocos2d/Resources/fps_images.png加入到你項目中的Resources組下.

我 們已經完成   cocos2d-iphone的配置,但是這個項目還沒有編譯過,在左側的分欄中找到targets,點擊SimpleGame左側的小箭頭展開它,選擇 Link Binary With Libraries,彈出鼠標右鍵,選擇Add->Add Existing Frameworks,就像下圖中的那樣.

Cocos2d iPhone教程 全過程

在之后彈出的窗口中,點擊窗口下方的”+”號按鈕(在Linked Libraries列表的下方),在彈出的frameworks列表中選擇 OpenGLES.framework和 QuartzCore.framework.

Cocos2d iPhone教程 全過程

點擊add按鈕之后,你的linked libraries列表應該和下圖一樣.

Cocos2d iPhone教程 全過程

現(xiàn)在,當你build你的項目時,它們將被編譯到項目中.當然,現(xiàn)在還沒法做任何事情,但是沒有編譯失敗,這就是最棒的了.

整理項目.

讓我們高效的整理一下項目結構,現(xiàn)在你很難找出SimpleGameAppDelegate文件了吧,因為他們一大堆東西都顯示在項目的根級別下.

在項目下創(chuàng)建兩個Groups:Support 和 Classes

Cocos2d iPhone教程 全過程

首先移動 Chipmunk 和 cocos2d到Support組下.接下來移動SimpleGameAppDelegate.h 和 SimpleGameAppDelegate.m到Classes組下.完成后你的項目層級看起來就像下圖:

Cocos2d iPhone教程 全過程

這并不必要的步驟,但是保持項目層級的清晰是會讓你的工作事半功倍的.

創(chuàng)建一個主菜單.

現(xiàn)在我們終于要正是開始使用Cocos2d iPhone了.在編寫代碼之前,我們先抽幾分鐘的時間做一個概述,接下來的課程中我們將要使用.

Cocos2d iPhone中,你將可以方便快捷的處理現(xiàn)場Scence,層Layer等.場景Scence就是一個當你創(chuàng)建了它之后,玩家就可以看見 它.它是由一個或多個層Layer組成的.要顯示一個特定的場景Scence,你要告訴Director(這是一個單例模式類)去顯示它.

現(xiàn)在我們要創(chuàng)建MenuScene ,這是一個場景的子類,還要創(chuàng)建一個MenuLayer ,我們的菜單中將包含他們。

最后,我們要連接的applicationDidFinishLaunching方通知訴Dorector執(zhí)行MenuScene 。

我們需要在項目中添加一個圖片來作為我們MENU 層的背景,你可以下載這張圖片并加入到你項目中

現(xiàn)在開始寫代碼啦.鼠標右鍵單擊Classes組,并選擇 Add->New File...,選擇Cocoa Touch Classes中的NSObject subclass文件類型,命名為 MenuScene.m(完成時將自動創(chuàng)建.h的頭文件)

Cocos2d iPhone教程 全過程

現(xiàn)在打開MenuScene.h文件,并將代碼改成看起如下.

  1. #import <UIKit/UIKit.h> 
  2. #import “cocos2d.h”@interface MenuScene : Scene {}  
  3. @end  
  4. @interface MenuLayer : Layer {}  
  5. -(void)startGame: (id)sender;  
  6. -(void)help: (id)sender;  
  7. @end 

接下來我們要讓MenuScene.m實現(xiàn)為MenuScene 和 MenuLayer類

  1. #import “MenuScene.h”  
  2. @implementation MenuScene  
  3. - (id) init {  
  4. self = [super init];  
  5. if (self != nil) {  
  6. Sprite * bg = [Sprite spriteWithFile:@"menu.png"];  
  7. [bg setPosition:cpv(240, 160)];  
  8. [self add:bg z:0];  
  9. [self add:[MenuLayer node] z:1];  
  10. }  
  11. return self;  
  12. }  
  13. @end@implementation MenuLayer  
  14. - (id) init {  
  15. self = [super init];  
  16. if (self != nil) {  
  17. [MenuItemFont setFontSize:20];  
  18. [MenuItemFont setFontName:@"Helvetica"];  
  19. MenuItem *start = [MenuItemFont itemFromString:@"Start Game"  
  20. target:self  
  21. selector:@selector(startGame:)];  
  22. MenuItem *help = [MenuItemFont itemFromString:@"Help"  
  23. target:self  
  24. selector:@selector(help:)];  
  25. Menu *menu = [Menu menuWithItems:start, help, nil];  
  26. [menu alignItemsVertically];  
  27. [self add:menu];  
  28. }  
  29. return self;  
  30. }  
  31. -(void)startGame: (id)sender {  
  32. NSLog(@”start game”);  
  33. }  
  34. -(void)help: (id)sender {  
  35. NSLog(@”help”);  
  36. }  
  37. @end 

現(xiàn)在先放下這startGame和  help這兩個方法,一會兒我們再回來更新它們.

現(xiàn)在我們有了可執(zhí)行的menu,我們需要打開SimpleGameAppDelegate(.h和.m)文件,讓Director在應用程序啟動時加載MenuScene

在SimpleGameAppDelegate.h的頂部加入 cocos2d 和 MenuScene的import:

  1. #import <UIKit/UIKit.h> 
  2. #import “cocos2d.h”  
  3. #import “MenuScene.h”接下來,打開SimpleGameAppDelegate.m,添加如下代碼:  
  4. #import “SimpleGameAppDelegate.h”  
  5. @implementation SimpleGameAppDelegate  
  6. - (void)applicationDidFinishLaunching:(UIApplication *)application {  
  7. UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
  8. [window setUserInteractionEnabled:YES];  
  9. [window setMultipleTouchEnabled:YES];  
  10. [[Director sharedDirector] setLandscape: YES];  
  11. [[Director sharedDirector] attachInWindow:window];[window makeKeyAndVisible];  
  12. MenuScene * ms = [MenuScene node];  
  13. [[Director sharedDirector] runWithScene:ms];  
  14. }  
  15. @end 

現(xiàn)在你可以Build and Go這個項目了,你將看到下面這個丑陋畫面.

Cocos2d iPhone教程 全過程

幸運的是,我們已經學到了很多Cocos2D的用法,這將讓后面的事情變得簡單許多.

加入一個游戲場景.

接下來,我們要創(chuàng)建一個簡單的游戲場景,它將在點擊Start Game選項后顯示.讓我們加入另一個不同的背景圖片,當我們進入游戲時就會現(xiàn)實它了.

加入這個圖片到項目中,它將成為游戲場景的背景.

接著創(chuàng)建GameScene.h 和 GameScene.m文件至Classes組中.在GameScene.h文件中添加如下代碼:

  1. #import <UIKit/UIKit.h> 
  2. #import “cocos2d.h”@interface GameScene : Scene {}  
  3. @end  
  4. @interface GameLayer : Layer {}  
  5. @end  
  6.  
  7. 修改 GameScene.m使其看起來如下:  
  8.  
  9. #import “GameScene.h”  
  10. #import “MenuScene.h”@implementation GameScene  
  11. - (id) init {  
  12. self = [super init];  
  13. if (self != nil) {  
  14. Sprite * bg = [Sprite spriteWithFile:@"game.png"];  
  15. [bg setPosition:cpv(240, 160)];  
  16. [self add:bg z:0];  
  17. [self add:[GameLayer node] z:1];  
  18. }  
  19. return self;  
  20. }  
  21. @end  
  22. @implementation GameLayer  
  23. - (id) init {  
  24. self = [super init];  
  25. if (self != nil) {  
  26. isTouchEnabled = YES;  
  27. }  
  28. return self;  
  29. }  
  30. - (BOOL)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {  
  31. MenuScene * ms = [MenuScene node];  
  32. [[Director sharedDirector] replaceScene:ms];  
  33. return kEventHandled;  
  34. }  
  35. @end 

最后,我們要回去MenuLayer類中更新startGame方法,修改如下:

  1. -(void)startGame: (id)sender {  
  2. GameScene * gs = [GameScene node];  
  3. [[Director sharedDirector] replaceScene:gs];  

大膽的創(chuàng)建這個項目,沉浸在成功的喜悅幾秒鐘吧.Cocos2d iPhone最好的地方就是從這里開始一切都變得簡單了,困難的地方已經結束了.

教學到這里就結束了.

你可以下載我們?yōu)檫@個教程制作的項目文件.

我們希望這能起到幫助介紹 Cocos2d iPhone 這個項目的作用,可以讓你花一點時間來了解一下這個偉大的項目.

小結:Cocos2d iPhone教程 全過程的內容介紹完了,希望本文對你有所幫助!更多游戲開發(fā)的內容請參考編輯推薦!

原帖地址  http://www.cocoachina.com/bbs/read.php?tid-2697-fpage-11.html

責任編輯:zhaolei 來源: Cocoa China
相關推薦

2011-07-27 13:57:36

iPhone 游戲 Cocos2d

2011-07-27 10:13:23

Cocos2D iPhone

2011-08-04 17:01:16

iPhone游戲開發(fā) Cocos2d

2011-08-11 14:22:47

iPhone游戲Cocos2D

2011-08-11 14:32:04

iPhone游戲Cocos2dActions

2011-07-27 17:07:06

iPhone 游戲 Cocos2d

2011-07-27 14:48:21

iPhone Cocos2D 坐標

2011-07-29 18:02:06

2011-08-30 18:01:20

2012-06-01 10:27:44

Cocos2d觸摸分發(fā)原理

2011-08-16 17:13:02

Cocos2DFruit Ninja

2011-08-11 17:52:01

Cocos2d游戲對象

2011-08-09 16:08:58

IOS游戲Cocos2d

2011-08-22 10:49:42

Cocos2d 開發(fā)CCLayerTouch事件

2012-04-16 13:37:57

cocos2d

2011-02-22 10:46:02

Samba配置

2024-05-23 13:26:27

2011-08-08 15:40:47

Cocos2d

2011-08-11 18:00:18

Cocos2d動作Action

2016-11-08 09:01:24

點贊
收藏

51CTO技術棧公眾號