0

上のライブラリをpong使用してゲームを作成しようとしています。両方のプレーヤーの 2 つのバーを正常に作成しました。問題は、両方のプレーヤーが対応するキーを押したときに、どちらか一方だけが動いていたことです。ncursesterminal

それで、ネットを検索したところ、ウィンドウを使用できることがわかりました。logical curser各ウィンドウを使用できるため、プレーヤーからのコマンドを並行して実行できます。私のプログラムのコードスニペットは次のようになります。

pthread_t player_1, player_2;
pthread_create(&player_1, NULL, (void*)&player_1_move, (void*)pl_window);
pthread_create(&player_2, NULL, (void*)&player_2_move, (void*)p2_window);

while(1)
{
    char c=getch();
    if(key is from p1)
         //signal player_1 thread to refresh the bar position

    if(key is from p2)
         //refresh it for player_2 by signaling 2nd thread..

}
//here player_1_move and player_2_move are the functions for changing the bar position         for each of the players..I have created two windows in which i draw these bars, which i haven't shown in my code..

問題は、私は pthreads を使用していますが、両方のプレーヤーが一度に押すと、両方が同時に動いているのをまだ見ることができないということです。

何か提案があれば...

4

1 に答える 1

0

クレイグが言ったように... 2つのキーを同時に押すと、端末は処理しません。それらのいずれかを選択します..それが正確な問題でした。を使用しても解決できませんpthreads

于 2013-02-05T06:19:12.953 に答える