2011-12-08 6 views
2

私は「Point and Fame」と呼ばれるゲームを作成しています。これは、コンパイラがランダムに抽出すると推測する数字の組み合わせに基づいています。ゲームが実行されているときに同時に印刷するタイマーを追加する必要があります。私はそれを行う方法がわからないマルチスレッドプロセスを作成する必要があることを理解しています。Cでゲームと同時に動作するタイマーを作成する方法は?

ゲームにタイマーを入れる別の方法がある場合、またはループを同時に実行すると、たくさんの助けになります。

+1

をチェックするかどうかわからないの前に、この記事を読んでいました。 –

+3

スレッドしたくない場合は、ゲームループが終了するたびにシステムタイマーを調べてください。それが十分に増加している場合は、あなたのタイマー値を更新し、それを再印刷させてください。どこでもコードを「ブロック」しない限り(入力待ちのように)動作します。 –

+1

必ずしもマルチスレッド化する必要はありません。十分なレートで定期的なタイマーコールバックをOSに与えることができれば、そのレートに関連するすべてを達成することができます。問題にスレッドを投げるだけではありません。 – JustJeff

答えて

1

私はそれを助けるが、ちょうどこれは、あなたが取り組んでいるものをプラットフォームに依存しthis

#include <stdio.h> 
#include <pthread.h> 

/* This is our thread function. It is like main(), but for a thread */ 
void *threadFunc(void *arg) 
{ 
    char *str; 
    int i = 0; 

    str=(char*)arg; 

    while(i < 10) 
    { 
     usleep(1); 
     printf("threadFunc says: %s\n",str); 
     ++i; 
    } 

    return NULL; 
} 

int main(void) 
{  
    pthread_t pth; // this is our thread identifier 
    int i = 0; 

    /* Create worker thread */ 
    pthread_create(&pth,NULL,threadFunc,"processing..."); 

    /* wait for our thread to finish before continuing */ 
    pthread_join(pth, NULL /* void ** return value could go here */); 

    while(i < 10) 
    { 
     usleep(1); 
     printf("main() is running...\n"); 
     ++i; 
    } 

    return 0; 
} 
関連する問題