0

私は今、テトリスを書いています。画面上の同じ位置に数字を 1 つずつドロップするメソッドがあります。そのメソッドは、画面をダブルタップした後に動作を開始し、while ループで呼び出されます。

while (gameState == gamePlaying) {} 

問題は、メソッドをドロップする間、またはボタンを使用するだけでメソッドを機能させる方法がわからmoveLeftないことです(正しく理解していれば) moveRightUISwipeGesture現在動作しているメソッドよりも優先度の高いボタンを作成できますか?!(または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 に答える