iT邦幫忙

DAY 22
1

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

[Day22] 遊戲Touch & Push開發 - 2

  • 分享至 

  • xImage
  •  

接者來為GamePlayScene增加一個計時器,計算遊戲的倒數時間。

首先新增一個遊戲場景GamePlayScene.ccb

將場景的Custom class命名為GamePlayScene

拉一個標籤至場景之中,作為遊戲場景的計時器

設定標籤的Doc root var為 _timer,作為場景的變數。

切換到MainScene,將Multiple Player按鈕的Selector設定為multiplePlayer,並發佈置Xcode。

為Multiple Player按鈕實作切換場景方法
MainScene.m程式碼如下:

#import "MainScene.h"
@implementation MainScene
- (void)multiplePlayer {
CCScene *gamePlayScene = [CCBReader loadAsScene:@"GamePlayScene"];
[[CCDirector sharedDirector] replaceScene:gamePlayScene];
}
@end

在Xcode新增GamePlayScene場景


GamePlayScene.m程式碼如下:

#import "GamePlayScene.h"
@interface GamePlayScene () {
CGFloat maxTimer;
CCLabelTTF *_timer;
}
@end
@implementation GamePlayScene
- (void)didLoadFromCCB {
maxTimer = 90.0f;
}
- (void)update:(CCTime)delta {
maxTimer -= delta;
if (maxTimer > 0.0f) {
_timer.string = [NSString stringWithFormat:@"%.0f", maxTimer];
} else {
_timer.string = @"0";
}
}
@end

程式碼解析:

畫面刷新會自動呼叫此方法
// time: 每次刷新的時間差
- (void)update:(CCTime)time

變數說明
CGFloat maxTimer; // 倒數最大值
CCLabelTTF *_timer; // 在SpriteBuilder中標籤設定的變數

秒數最大值為90秒
maxTimer = 90.0f;

透過秒數最大值與刷新畫面時間差相減計算倒數時間
maxTimer -= delta;

倒數時間大於0,則持續更新
小於0顯示0,停止更新
if (maxTimer > 0.0f) {
_timer.string = [NSString stringWithFormat:@"%.0f", maxTimer];
} else {
_timer.string = @"0";
}

執行結果:

點擊Multiple Player切換場景就可以看到標籤倒數。


上一篇
[Day21] 遊戲Touch & Push開發 - 1
下一篇
[Day23] 遊戲Touch & Push開發 - 3
系列文
從0開始用Cocos2d for iPhone寫App Game的30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言