代码存在问题,键盘输入后,1和2玩家不会做出相应指令
时间: 2024-04-14 21:31:00 浏览: 28
非常抱歉,我的代码有误。下面是修复后的代码,现在玩家1和2应该能够根据键盘输入做出相应的移动:
```c
#include <stdio.h>
#include <conio.h>
#define WIDTH 20
#define HEIGHT 10
int player1X, player1Y;
int player2X, player2Y;
void drawGame()
{
system("cls"); // 清空屏幕
for (int i = 0; i < HEIGHT; i++)
{
for (int j = 0; j < WIDTH; j++)
{
if (i == player1Y && j == player1X)
printf("1"); // 玩家1用数字1表示
else if (i == player2Y && j == player2X)
printf("2"); // 玩家2用数字2表示
else
printf(" "); // 空格表示空位置
}
printf("\n");
}
}
void updatePlayer(int player, char direction)
{
if (player == 1)
{
switch (direction)
{
case 'w':
if (player1Y > 0)
player1Y--;
break;
case 's':
if (player1Y < HEIGHT - 1)
player1Y++;
break;
case 'a':
if (player1X > 0)
player1X--;
break;
case 'd':
if (player1X < WIDTH - 1)
player1X++;
break;
}
}
else if (player == 2)
{
switch (direction)
{
case 'i':
if (player2Y > 0)
player2Y--;
break;
case 'k':
if (player2Y < HEIGHT - 1)
player2Y++;
break;
case 'j':
if (player2X > 0)
player2X--;
break;
case 'l':
if (player2X < WIDTH - 1)
player2X++;
break;
}
}
}
int main()
{
player1X = WIDTH / 4;
player1Y = HEIGHT / 2;
player2X = WIDTH * 3 / 4;
player2Y = HEIGHT / 2;
char key;
while (1)
{
drawGame();
if (kbhit()) // 检测键盘输入
{
key = getch();
updatePlayer(1, key);
updatePlayer(2, key);
}
}
return 0;
}
```
这次我修复了键盘输入后玩家1和2不会做出相应指令的问题。现在你可以尝试使用"WASD"控制玩家1的移动,使用"IJKL"控制玩家2的移动。
如果还有其他问题,请随时提问!