iT邦幫忙

DAY 5
1

從0開始用Cocos2d for iPhone寫App Game的30天系列 第 5

[Day5] 場景與增加物件

  • 分享至 

  • xImage
  •  

前幾篇說了很多概念(什麼Cocos2d、Cocos2d運作原理、Objective-C語法),現在就讓我們運用這些概念打造自己的場景與增加物件吧。

首先產生一個Cocos2d專案。
刪除Classes資料夾裡的IntroScene, HelloWorldScene檔案。
產生BasicActionScene繼承至CCScene的類別。
修改AppDelegate.m,讓Cocos2d使用BasicActionScene作為第一個場景

AppDelegate.m程式如下
#import "AppDelegate.h"
#import "BasicActionScene.h"

@implementation AppDelegate

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self setupCocos2dWithOptions:@{
CCSetupShowDebugStats: @(YES),
}];

return YES;
}

-(CCScene *)startScene
{
return [BasicActionScene scene];
}

@end

編緝BasicActionScene,新增初始化方法給BasicActionScene場景
BasicActionScene.h
#import "cocos2d.h"
#import "cocos2d-ui.h"

@interface BasicActionScene : CCScene

+ (CCScene *)scene;

- (id)init;

@end

BasicActionScene.m
#import "BasicActionScene.h"

@implementation BasicActionScene

+ (CCScene *)scene
{
return [[self alloc] init];
}

- (id)init
{
self = [super init];
if (!self) return(nil);

//
// 程式等等寫這裡...
//

return self;
}

@end

這樣就建置好屬於自己的專案流程,現在就讓我們執行看看吧。


現在會看到一片黑的畫面是因為沒有增加任何物件至場景之中,

增加物件至場景中,會使用下列的三個方法:

初始化物件透過CCSprite類別的+spriteWithImageNamed:方法指定一張圖生成xxxSprite物件
CCSprite *xxxSprite =[CCSprite spriteWithImageNamed:@"xxx.png"]
指定物件位置設定xxxSprite位置
xxxSprite.position = ccp(ponitX, pointY)
在場景貼上物件增加xxxSprite至場景中(self現在為BasicActionScene)
[self addChild:xxxSprite]

現在就透過這三個方法,增加一些精靈至場景中吧。
- (id)init
{
self = [super init];
if (!self) return(nil);

//
// 程式等等寫這裡...
//
//
// 透過CCSprite類別的+spriteWithImageNamed:方法指定一張圖生成xxxSprite物件
// CCSprite *xxxSprite =[CCSprite spriteWithImageNamed:@"xxx.png"]
//
// 設定xxxSprite位置
// xxxSprite.position = ccp(ponitX, pointY)
//
// 增加xxxSprite至場景中(self現在為BasicActionScene)
// [self addChild:xxxSprite]
//

CCSprite *scaleSprite = [CCSprite spriteWithImageNamed:@"Icon-72.png"];
scaleSprite.position = ccp(50.0f, self.contentSize.height / 2);
[self addChild:scaleSprite];

CCSprite *jumpSprite = [CCSprite spriteWithImageNamed:@"Icon-72.png"];
jumpSprite.position = ccp(150.0f, self.contentSize.height / 2);
[self addChild:jumpSprite];

CCSprite *rotateSprite = [CCSprite spriteWithImageNamed:@"Icon-72.png"];
rotateSprite.position = ccp(250.0f, self.contentSize.height / 2);
[self addChild:rotateSprite];

CCSprite *moveSprite = [CCSprite spriteWithImageNamed:@"Icon-72.png"];
moveSprite.position = ccp(350.0f, self.contentSize.height / 2);
[self addChild:moveSprite];

return self;
}
重新執行,就能看到我們增加至場景中的四個(精靈)物件
分別為:scaleSprite、jumpSprite、rotateSprite、moveSprite


到這裡我們已經能為遊戲場景增加樹、屋子、人等物件,只要更換物件圖片就能讓他們成為遊戲中重要角色,透過簡單的幾個方法就能達到,在遊戲建構遊戲上是不是多了一點信心呢?我們已經在遊戲開發中跨出一大步。


上一篇
[Day4] Objective-C程式語法介紹
下一篇
[Day6] 簡單的動畫事件
系列文
從0開始用Cocos2d for iPhone寫App Game的30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
henryfan
iT邦新手 5 級 ‧ 2014-10-06 10:38:13

筆者還用顏色區分動作的物件及程式碼部分,太用心啦!

我要留言

立即登入留言