接者來為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切換場景就可以看到標籤倒數。