2012-04-10 8 views
0

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

while (gameState == gamePlaying) {} 

方法の作品を滴下しながら、私は任意のボタンを使用することはできませんだから問題は、私はUISwipeGestureによって、あるいは単にボタンを使用して、私のmoveLeftまたはmoveRight方法を動作させる方法を知っていdonn'tということです(私がそれを正しく理解していれば) 今のところ動作している方法よりも高い優先度を持つボタンを作成するにはどうすればいいですか?(または使用方法この状況では?)

答えて

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 
関連する問題