Я пишу простую игру на C с SDL, и я определил, что игрок один управляет it_for example_tank с помощью клавиши со стрелкой на клавиатуре, а игрок два управляет его танком с помощью клавиш "W", "A", "S "," D "клавиатуры.
Моя проблема в том, что они не могут одновременно нажимать клавиши.
У меня есть функция с именем handle_events, которая управляет событиями в бесконечности.время игры и его код, как показано ниже:
int handle_events(Tank* tank,Tank* tanker, Wall walls[]){
SDL_Event event;
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT)
return EXIT;
if (event.type == SDL_KEYDOWN){
if(event.key.keysym.sym==SDLK_UP){
move_tank_forward(tank,colliding(tank,walls));
}else if(event.key.keysym.sym==SDLK_DOWN){
move_tank_back(tank,colliding(tank,walls));
} else if(event.key.keysym.sym==SDLK_RIGHT || event.key.keysym.sym==SDLK_LEFT) {
turn_tank(event.key.keysym.sym, tank);
} else if(event.key.keysym.sym==SDLK_w){
move_tank_forward(tanker,colliding(tanker,walls));
} else if (event.key.keysym.sym==SDLK_s){
move_tank_back(tanker,colliding(tanker,walls));
} else if(event.key.keysym.sym==SDLK_d || event.key.keysym.sym==SDLK_a){
turn_tank(event.key.keysym.sym, tanker);
}
}
Я ищу способ, которым два игрока могут играть одновременно, потому что прямо сейчас, если, например, оба игрока нажимают клавишу вверх и клавишу w,никто из них не может переместить свой танк.