![]() |
|
Другие темы раздела | |
C# Вывести в заданную позицию консоли информацию о координаты мыши, состояние управляющих клавиш
https://www.cyberforum.ru/ csharp-beginners/ thread1427939.html Всем доброго времени суток, в институте такая вот задача далась, помогите её решить пожалуйста: Написать программу, которая выводит в заданную позицию консоли информацию о координаты мыши,... |
Написать программу для получения сведений о системе, используя WinAPI функции C# Всем доброго времени суток, в институте такая вот задача далась, помогите её решить пожалуйста: Написать программу для получения сведений о системе, используя функции Win32 API: GetSystemInfo (),... |
C# Написать программу для получения сведений о системе, используя функции Win32 API В институте такая вот задача далась, помогите её решить пожалуйста: Написать программу для получения сведений о системе, используя функции Win32 API типа: GetSystemDirectory (), GetWindowsDirectory... https://www.cyberforum.ru/ csharp-beginners/ thread1427936.html | C# Вывод цифр, добавляя ноль Есть массив. Он заполняется значением по возрастанию, то есть первый элемент 1, второй 2, 3,4,5....и так до 99. Как вывести значение массива так, чтобы он выводил на экран вот в таком ввиде:... https://www.cyberforum.ru/ csharp-beginners/ thread1427912.html |
C# Как правильно перегрузить оператор сложения двух строк Здравствуйте форумчане ! Я пытаюсь реализовать один алгоритм , в котором идет работа с двоичной сс. Но не знаю , как правильно перегрузить оператор сложения двух строк. :( К примеру у меня есть... |
C# Как сохранять информацию в текстовый документ?
https://www.cyberforum.ru/ csharp-beginners/ thread1427851.html Всем привет, у меня запара можете подсказать как сохрать в текстовый документ инфу и доставать её от туда? |
C# Операции в над обобщенными типами using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace cs_test_app_1 { class Program { static void... https://www.cyberforum.ru/ csharp-beginners/ thread1427840.html |
C# Эргономические исследования помогите пожалуйста написать код на и что то вроде секундомера, в общем в должны считать время редактирования для офисов а в количество кликов мыши и время например для перемещения папки или... |
C# Работа с кодировкой вида "u0430\u0434\" в HttpResponce ответах Приветствую! возникла странная проблема. В ответах от хттп сервера я получаю контент, в котором кириллица отображается символами вида "u0430\u0434\u0430" Цель - встроить декодирование ответов... https://www.cyberforum.ru/ csharp-beginners/ thread1427726.html |
C# Представить сигнал из Wave-файла в виде осциллограммы
https://www.cyberforum.ru/ csharp-beginners/ thread1427723.html Представить сигнал записан в wav файле без использования звукового редактора в виде осциллограммы (зависимость амплитуды отсчетов от времени). спектрограммы (сонограммы) спектра Фурье Ето... |
Открыть файл с помощью WinInet.dll C# Приветствую. Долго уже мучаюсь, не могу понять в чём моя ошибка. Ситуация следующая: В проект C# .NET CF 3.5 импортирую библиотеку wininet.dll v8.0 для работы с FTP. К серверу подключаюсь.... |
C# Передача данных клиент-сервер Всем доброго. Только начал изучать сокеты и передачу через tcp/udp. Есть клиент и сервер, коннект через udp: private void buttonReceive_Click(object sender, EventArgs e) { ... https://www.cyberforum.ru/ csharp-beginners/ thread1427700.html |
[Bicycle Reinventor]
|
|||||||||||
23.04.2015, 10:05 | 0 | ||||||||||
Очистка входного потока - C# - Ответ 751875423.04.2015, 10:05. Показов 4284. Ответов 2
Метки (Все метки)
![]() Решение
Когда изучал паттерн GameLoop, упрощал некоторые куски кода на примере MonoGame, адаптируя их под консоль. Стремления создать полноценную игру не было - интересно было создать лишь консольный игровой движок, на основе которого можно было потом что-то сделать. Тогда же я столкнулся с проблемой, которая имеет те же корни, что и у вас.
В геймдеве всегда есть потребность в обработке длительных и одиночных нажатий клавиш. Например, если мы нажимаем кнопку бега, персонаж должен бежать, пока кнопка нажата. И наоборот - если мы нажимаем кнопку прыжка, персонаж должен прыгнуть лишь один раз и не прыгать снова, пока пользователь не отпустит кнопку и не нажмёт её снова. Для этих целей на каждой итерации игрового цикла состояние пользовательского ввода проверяется с состоянием на предыдущей итерации, чтобы видеть изменения (за счёт этого можно обнаруживать события нажатия и отпускания клавиши). Однако это не работает для консоли, потому что у консоли нет ивентов типа keyDown и keyUp, а именно они используются для реализации этого механизма. Консольное окно - если грубо - просто текстовый редактор. Что будет, если в текстовом редакторе зажать кнопку? В момент нажатия нужная буква появится в тексте, затем последует пауза в секунду, а затем эта буква будет потоком очень быстро набираться в текстовое поле. Поэтому при обработке пользовательского ввода в консоль, мы фактически обрабатываем текстовый ввод. Какими могут быть решения? Как вариант - можно было бы использовать глобальный хук клавиатуры, но я не знаю, как это работало бы на самом деле с консолью. Я решал проблему по-другому. Для того, чтобы пользовательский ввод был независимым, я вынес обработку пользовательского ввода из основного цикла GameLoop в отдельный поток, чтобы методы отрисовки и игровой логики ему не мешали, реализовал сохранение статуса нажатой кнопки на предыдущей итерации и завёл отдельный флаг, отображающий прочитал ли основной цикл нажатую клавишу или она ещё не обработана.
Если вы пишете игру, рекомендую самостоятельно изучить паттерн GameLoop, потому что все игры за последние лет 10-15 написаны с использованием этого паттерна, пошаговые ли, реального времени ли, да хоть рогалики и квесты. Хорошую статейку по этому поводу можно найти здесь. Я бы даже сказал, что очень хорошая статейка. Пример с хабра. Также полезными окажутся исходники MonoGame, которые можно найти здесь. Игровой цикл там реализовал по всем правилам паттерна и идентичен тому, что используется в XNA. Вернуться к обсуждению: Очистка входного потока C#
1
|
|
23.04.2015, 10:05 | |
Готовые ответы и решения:
2
Недопустимый двоичный формат входного потока Выловить из входного потока нажатие Enter в незаполненной консоли Очистка textBox из другого потока |
23.04.2015, 10:05 | |
Помогаю со студенческими работами здесь
0
Записать число в начало потока вернувшись с конца потока после записи нескольких элементов... Как из одного потока узнать состояние другого потока Очистка входного потока (cin или stdin) Слова входного потока |