Как получить символ в цикле, не останавливаясь в цикле? - PullRequest
0 голосов
/ 09 февраля 2012

Здравствуйте, я новичок в программировании на C, но создаю меню для игры.Я показываю рыбу в искусстве ascii, и она перемещается на одного персонажа каждые 0,5 секунды.Я выполняю это простым циклом, и он продолжает идти по экрану, затем, когда он достигает конца, рыба очищается, а затем она повторяется снова.Теперь, когда эта анимация продолжается, я хотел бы предложить пользователю ввести данные, однако, когда я делаю это, например, с помощью getchar или scanf, цикл fish ждет, пока я что-то не нажму, и анимация не остановится, пока я не нажму клавишу.Может кто-нибудь, пожалуйста, пролить свет на мою проблему ??

Спасибо

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

Вы не можете сделать это ни с одним из стандартных методов ввода. Вам придется либо использовать что-то вроде ncurses, либо перевести терминал в режим raw и сделать довольно причудливые манипуляции. Я понятия не имею, на какой платформе вы работаете, но в Linux простой режим затруднен, а в Windows - еще сложнее, поэтому, если можно, я бы остановился на библиотеке.

0 голосов
/ 09 февраля 2012

Добро пожаловать в мир Тем .

Чтобы понять темы, подумайте о том, как работает ваш компьютер.Если ваш компьютер работал без потоков, вы не сможете запускать несколько приложений одновременно.Потоки позволяют одновременно запускать несколько частей программы или интерфейса, не завися от друг друга.

В вашем случае вам понадобится поток для ввода и отдельный поток для анимации.Таким образом, позволяя обеим работать отдельно.

...