Advertise here




Advertise here

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Timer for Multiple XIBs?

rebello95rebello95 Posts: 222Registered Users @ @
edited January 2012 in iPhone SDK Game Development
Hey, I'm making a game that goes across a lot of interface files. I'm working on coding it so that there's a timer counting across all of them. If this code is just completely terrible, please let me know lol. Here's what I have:

GameTimerViewController.h

@interface GameTimerViewController : UIViewController {

int time;
NSTimer *maintimer;

IBOutlet UILabel *mylabel;

}

- (IBAction)newgame;
- (void)updatetime;

-(IBAction)save;

-(IBAction)switchPage:(id)sender;

@end

GameTimerViewController.m

#import "GameTimerViewController.h"
#import "Page2.h"

@implementation GameTimerViewController

- (void) awakeFromNib {

time = 0;

}

- (IBAction)newgame {
maintimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updatetime) userInfo:nil repeats:YES];

}

- (void) updatetime {

time = time +1;
if (time <=0) {

[maintimer invalidate];
//game over

}

mylabel.text = [NSString stringWithFormat:@"%i" , time];
}

-(IBAction)save {

NSString *savestring = mylabel.text;

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

[defaults setObject:savestring forKey:@"savedstring"];

[defaults synchronize];

[maintimer invalidate];

}

-(IBAction)switchPage:(id)sender {

Page2 *p2 =[[Page2 alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:p2 animated:YES];

}

Page2.h

@interface Page2 : UIViewController {

int time;
NSTimer *maintimer;
IBOutlet UILabel *label2;

}

-(IBAction)load;

@end

Page2.m

@implementation Page2

-(IBAction)load {

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

NSString *loadstring = [defaults objectForKey:@"savedstring"];

[label2 setText:loadstring];

maintimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updatetime) userInfo:nil repeats:YES];
}

- (void) updatetime {

time = time +1;
if (time <=0) {

[maintimer invalidate];
//game over

}

label2.text = [NSString stringWithFormat:@"%i" , time];

}
Check out my apps here: Link
Sign In or Register to comment.