我一直试图在pong
上使用ncurses
库创建terminal
游戏。我已经成功为两位球员创造了两个酒吧。问题在于,当两个玩家按下相应的按键时,只有其中一个按键移动。
所以,我在网上搜索,发现我们可以使用窗口,我们可以在每个窗口都有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,当两个玩家一次按下时,我仍然看不到两个同时移动。
任何建议都是......
答案 0 :(得分:0)
正如克雷格所说......当同时按下2个键时,终端无法处理。它将选择其中任何一个..这是确切的问题。即使我们使用pthreads
也无法解决。