Trong một game hay trong những chương trình thường có những giới hạn dành cho việc thi hành cái gì đó. Ví dụ như trong một màn chơi thường phải có thời gian để hạn chế một màn không quá dài cũng như ghi lại thành tích của mỗi người chơi.

Chương trình dưới đây giúp cho bạn có thể bấm thời gian và theo dõi thời gian trôi qua khi người đó bắt đầu chơi mộ màn của game.

Đầu tiên chúng ta có 2 nút (Button) để bắt đầu bấm giờ và ngừng việc bấm giờ lại:

* Connect chúng với IBAction trong file .h


- (IBAction)actStartTiming:(id)sender;

- (IBAction)actStopTiming:(id)sender;

và một nhãn (label) dùng để theo dõi thời gian đang chạy:

@property (strong, nonatomic) IBOutlet UILabel *lblDisplayTiming;

2 biến toàn cục để ghi nhận sự thay đổi và cho chạy thời gian

{

NSTimer *stopWatchTimer;

NSDate *startDate;

}

Thế là xong file header (.h) giờ tới file chạy .m

Đây là code cho nút (button) bắt đầu đếm thời gian:

- (IBAction)actStartTiming:(id)sender {

startDate = [NSDate date];

stopWatchTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/10.0 target:self selector:@selector(updateTimer) userInfo:nil repeats:YES];

}

Đây là cho phần dừng thời gian:

- (IBAction)actStopTiming:(id)sender {

[stopWatchTimer invalidate];

stopWatchTimer = nil;

[self updateTimer];

}

Đây là cho phần update thời gian

- (void) updateTimer{

NSDate *currentDate = [NSDate date];

NSTimeInterval timeInterval = [currentDate timeIntervalSinceDate:startDate];



NSDate *timerDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];

_lblTesting.text = [timerDate description];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

[dateFormatter setDateFormat:@"HH:mm:ss.S"];

[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0.0]];

NSString *timeString = [dateFormatter stringFromDate:timerDate];

_lblDisplayTiming.text = timeString;

}

Đó là toàn bộ chương trình để có thể theo dõi thời gian trong game.

Đây là Source Code dành cho những ai không làm được:

Mediafire: http://www.mediafire.com/?a4r5i69oq2dpqos

Product: LapKan Company Product (LK)
Coder: Huygamer
Blog: huygamer.wordpress.com