Например змейка:
while (!gameover)
{
Draw();
Input(); //ввод
Logic();
}
как сделать чтобы при нажатии клавиши она направлялась в ту сторону и при нажатии в другую сторону пошла в другую сторону не останавливаясь. while (!gameover)
{
Draw();
Input(); //ввод
Logic();
}
как сделать чтобы при нажатии клавиши она направлялась в ту сторону и при нажатии в другую сторону пошла в другую сторону не останавливаясь. #include
#include // Для функции _getch() в Windows
enum Direction { UP, DOWN, LEFT, RIGHT };
int main() {
bool gameover = false;
Direction direction = RIGHT;
while (!gameover) {
// Draw();
// Логика отрисовки змейки
// Input
if (_kbhit()) {
char input = _getch();
switch (input) {
case 'w':
if (direction != DOWN)
direction = UP;
break;
case 's':
if (direction != UP)
direction = DOWN;
break;
case 'a':
if (direction != RIGHT)
direction = LEFT;
break;
case 'd':
if (direction != LEFT)
direction = RIGHT;
break;
// Другие обработки ввода, если необходимо
}
}
// Logic();
// Логика обновления позиции змейки
// Пример автоматического движения
switch (direction) {
case UP:
// Обновить позицию змейки вверх
break;
case DOWN:
// Обновить позицию змейки вниз
break;
case LEFT:
// Обновить позицию змейки влево
break;
case RIGHT:
// Обновить позицию змейки вправо
break;
}
// Добавьте здесь задержку времени, если требуется ограничить скорость движения змейки
}
return 0;
}
Тогда почему аналогичная тестовая запись так не работает, хотя все записано примерно так же