Advertise here




Advertise here

Howdy, Stranger!

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

Sign In with Google Sign In with OpenID

Timer for Multiple XIBs?

rebello95rebello95 Posts: 212Registered 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: FlounderApps.com
Sign In or Register to comment.