Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

99miles

macrumors member
Original poster
Oct 10, 2008
50
0
I have a game with which mostly consists of the following:

a)Timer every second for clock
b)Timer ever 0.02 for animating many objects (this is always running)
c)User interaction with objects

I'm new to using multiple threads so I'm wondering what is suggested usage here. I currently have everything on the main thread except timer 'b' mentioned above. I'm reading that UI stuff should be on the main thread but it seems like that could be both 'b' and 'c' above.

And just an FYI, I'm using this to start the timer 'b' above:
[NSThread detachNewThreadSelector:mad:selector(startObjectsAnimation:) toTarget:animationHelper withObject:nil];

Then in animationHelper:

NSAutoreleasePool *autoreleasepool = [[NSAutoreleasePool alloc] init];
animationTimer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:mad:selector(doAnimation:) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:animationTimer forMode:NSDefaultRunLoopMode];
[[NSRunLoop currentRunLoop] run];
[autoreleasepool release];

Curious what people's thoughts are about this.

Thanks in advance.
 

99miles

macrumors member
Original poster
Oct 10, 2008
50
0
Additional I see some people mention creating their own loop with a sleep interval instead of just using an NSTimer:

while (notDone)
{
[self performSelectorOnMainThread:mad:selector(updateInterface) withObject:nil waitUntilDone:NO];
[NSThread sleepForTimeInterval:0.5f];
}


Is that better for any reason than NSTimer?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.