How make a game loop on the iPhone without using NSTimer

前端 未结 5 1562
挽巷
挽巷 2021-01-31 23:53

In order to cleanly port my game to the iPhone, I\'m trying to make a game loop that doesn\'t use NSTimer.

I noticed in some sample code that, if using NSTimer, you\'d s

5条回答
  •  太阳男子
    2021-02-01 00:21

    If you don't wish to use NSTimer you can try running the NSRunLoop manually:

    static BOOL shouldContinueGameLoop;
    static void RunGameLoop() {
        NSRunLoop *currentRunLoop = [NSRunLoop currentRunLoop];
        NSDate *destDate = [[NSDate alloc] init];
        do {
            // Create an autorelease pool
            NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
            // Run the runloop to process OS events
            [currentRunLoop runUntilDate:destDate];
            // Your logic/draw code goes here
            // Drain the pool
            [pool drain];
            // Calculate the new date
            NSDate *newDate = [[NSDate alloc] initWithTimeInterval:1.0f/45 sinceDate:destDate];
            [destDate release];
            destDate = newDate;
        } while(shouldContinueGameLoop);
        [destDate release];
    }
    

提交回复
热议问题