Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
24 / 24 / 16
Регистрация: 14.11.2013
Сообщений: 103

Игра в консоли - вопрос скорости прорисовки сцены

02.03.2016, 10:20. Показов 1090. Ответов 1

Студворк — интернет-сервис помощи студентам
Мне надо создать небольшую игру в консоли на VB.NET (2010). Когда я пытаюсь сначала очищать консоль, потом выводить символы, а потом делать промежуток в 20 мс, то консоль всё равно мерцает. Я пробовал сделать нечто вроде буфера:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    Public Const sX = 80
    Public Const sY = 50
 
    Public Screen(sX, sY), Buffer(sX, sY) As Char
    Public ScreenClr(sX, sY), BufferClr(sX, sY) As ConsoleColor
 
    Public Sub RefreshScreen()
        For i As Integer = 0 To sY - 1
            For j As Integer = 0 To sX - 1
                If (Screen(j, i) <> Buffer(j, i)) Or (ScreenClr(j, i) <> BufferClr(j, i)) Then
                    Console.SetCursorPosition(j, i)
                    Buffer(j, i) = Screen(j, i)
                    Console.ForegroundColor = BufferClr(j, i)
                    Console.Write(Buffer(j, i))
                End If
            Next
        Next
    End Sub
то не моргает, но прорисовка выполняется очень медленно.
Я читал, что можно быстро управлять консолью при помощи WinAPI. У меня получилось использовать WinAPI, но как использовать WriteConsoleOutputCharacter? Там требуется аргумент типа COORD. Как его представить в VB.NET?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2016, 10:20
Ответы с готовыми решениями:

Вопрос прорисовки из оперативной памяти DIB
В результате работы некоторой функции, я получаю pDIB - указатель на 1й байт в оперативной памяти, где это все храниться. Нашел небольшой...

Движение фигур - вопрос оптимальной прорисовки
Доброго времени суток. Нужно написать мини-игру. Суть игры простая на экране три прямоугольника-коробки в них сверху падают круги разного...

Игра начинается не с той сцены
Я создал игру как школьный проект по урокам из интернета, было сделано 2 сцены это сама игра и меню, но почему то при запуске...

1
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
07.03.2016, 04:07
COORD (kernel32)
VB.NET
1
2
3
4
5
6
7
8
9
10
    <StructLayout(LayoutKind.Sequential)> _
    Public Structure COORD
    Public X As Short
    Public Y As Short
 
    Public Sub New(ByVal x As Short, ByVal y As Short)
        Me.X = x
        Me.Y = y
    End Sub
    End Structure
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2016, 04:07
Помогаю со студенческими работами здесь

Загрузка сцены, на которой завершилась игра
Каким методом можно реализовать загрузку сцены? Есть игра, в ней 50 сцен. Нужно чтобы после выхода из игры, номер сцены сохранялся, и...

вопрос о скорости
подскажите пожалуйста. какте операции выполняться быстрее копирование из одного источника в другой или битовое ИЛИ вместе с делением? ...

Что нужно сделать что бы запускалась флеш-игра (разбитай на сцены) на странице сайта?
Здравствуйте Игра SWF к ней есть спрайты или сцены, лежат в папке parts не имеют расширения. Загрузил на сайт SWF и папку parts со...

Ограничение по скорости нажатия клавиш - Игра Змейка
Написал код для Змейки, но возникла небольшая проблема - если быстро нажать вниз/вверх + вправо/влево Змея резко развернется на 180...

вопрос по скорости ком порта
есть оригинальная программа для обмена данными с сотовым телефоном. но версия моего аппарата не поддерживается. на основе команд с нее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru