0

我现在正在写俄罗斯方块,我有一种方法可以将数字一个一个地放到屏幕上的同一位置,该方法在双击屏幕后开始工作,并在 while 循环中调用:

while (gameState == gamePlaying) {} 

问题是我不知道如何使我的moveLeftormoveRight方法通过UISwipeGesture甚至仅通过使用按钮来工作,因为在 drop 方法有效时,我无法使用任何按钮或手势(如果我理解正确的话)那么如何我可以创建一个比目前有效的方法具有更高优先级的按钮吗?!(或UISwipeGestures在这种情况下如何使用?)

4

1 回答 1

1

我还建议使用 NSTimer 来安排游戏逻辑。如果您只是想在后台线程中执行操作以使用户界面不会阻塞,您可以使用例如:

-(void)performGameLogic
{
    //Do the game logic
}

-(void)startGame
{
    [self performSelectorInBackground:@selector(performGameLogic) withObject:nil];
}

NSTimer 变体:

@interface Game
{
    NSTimer * timer;
}

-(void)performGameLogic
{
    //Do the game logic
}

-(void)startGame
{
    timer = [NSTimer scheduledTimerWithTimeInterval: 0.1 target:self selector:@selector(performGameLogic:) userInfo:nil repeats: YES];
}

@end
于 2012-04-10T22:27:06.337 回答