Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.19.55.8] |
|
Страницы: (16) « Первая ... 5 6 [7] 8 9 ... 15 16 все ( Перейти к последнему сообщению ) |
Сообщ.
#91
,
|
|
|
Beep вроде.
|
Сообщ.
#92
,
|
|
|
Цитата trainer @ Beep вроде Фига. Эта функция работает только под линейкой NT. Под 9х - выдает через звуковуху дефолтовый звук. Хотя люди как-то делают - см. ХамелеонКлок. Одно из двух - либо прямо драйвер зовут, либо сами через порты. Или какой-то другой недокументированный хитропопый трюк мелкософтов. |
Сообщ.
#93
,
|
|
|
Сейчас эмуляция BGI-графики реализована?
|
Сообщ.
#94
,
|
|
|
Цитата helli @ да, но не полностью. Смотри на странмчке в Wiki. Сейчас эмуляция BGI-графики реализована? |
Сообщ.
#95
,
|
|
|
Пока машины у меня нет, появится через недельку. Планирую заняться DGML вплотную.
|
Сообщ.
#96
,
|
|
|
Вот и я. Пойду разгребать исходники...
|
Сообщ.
#97
,
|
|
|
Функции slepp, sound и т.п. выносить в отдельный хидер? То есть чтоб так и было, как в оригинале:
#include <graphics.h> #include <dos.h> или все в graphics.h спихнуть? Добавлено Такой вопрос возник в связи с заголовком stdlib.h, который заменятьб нельзя //====================================================================================== // ИЗ DOS.H //====================================================================================== // приостанавливает выполнение программы на заданное количество миллисекунд void delay(unsigned milliseconds); // приостанавливает выполнение программы на заданное количество секунд void sleep(unsigned seconds); // включает PC-спикер на заданную частоту void sound(unsigned frequency); // выключает PC-спикер void nosound(void); //====================================================================================== // ИЗ STDLIB.H //====================================================================================== // инициализирует генератор случайных чисел void randomize(void); |
Сообщ.
#98
,
|
|
|
Реализую функцию sound через таймер, который с интервалом воспроизводит короткие звуковые сигналы. Однако появились траблы с тем, что графику-то юзер может не инициализировать, поэтому функция обработки сообщений недоступна.
Если посылать сообщения другой функции, надо в прогу втыкать цикл обработки сообщений: Цитата MSDN If your application creates a timer without specifying a window handle, your application must monitor the message queue for WM_TIMER messages and dispatch them to the appropriate window. Замкнутый круг... Добавлено // включает PC-спикер на заданную частоту void DGML::sound(unsigned frequency) { //звук не воспроизводится if (!DGML_Stuff::timer_id) { //создаем таймер, который будет петь DGML_Stuff::timer_id=SetTimer(NULL, 10,100, (TIMERPROC)DGML_Stuff::sound_handler); } } // выключает PC-спикер void DGML::nosound(void) { KillTimer(NULL,DGML_Stuff::timer_id); DGML_Stuff::timer_id=0; } //обработчик звука void CALLBACK DGML_Stuff::sound_handler(HWND hwnd, UINT msg, UINT idTimer, DWORD dwTime) { Beep(440, 1000); } Добавлено Реализовал через timeSetEvent. Получилось убого. Требует Winmm.lib, хрипит и ресурсы жрет понапрасну. Надо искать другое решение... Да и вообще что-то кроссплатформенное. |
Сообщ.
#99
,
|
|
|
Пожалуйста, напиши kbhit()
Я уверен, это несложно |
Сообщ.
#100
,
|
|
|
Цитата Der_Meister @ Да и вообще что-то кроссплатформенное. Это вряд ли. Разве что использовать сторонние библиотеки - напр. http://www.fmod.org - моя любимая, есть практически под все. А так - очевидно нужно мспользовать DirectSound - но я тут не гуру - не было времени разбираться, в итоге заюзал ФМОД как обертку. |
Сообщ.
#101
,
|
|
|
barazuk
fmod не держит pc speaker имхо. А может ну его, pc speaker, выводить через колонки? angrylion ок Добавлено А насчет хидеров что? |
Сообщ.
#102
,
|
|
|
Цитата Der_Meister @ fmod не держит pc speaker имхо Ну конечно, кому оно надо? Цитата Der_Meister @ А может ну его, pc speaker, выводить через колонки? А я по-другому и не мыслил. Все равно через спикер под 9х не получится и вообще не портабельно... |
Сообщ.
#103
,
|
|
|
Ладно, оставим пока этот вопрос... Щас пляски с бубмном в расшифровке хранения картинок в BGI.
Ведь на уровне памяти тоже картинки должны совпадать, не так ли? А то было бы совсем легко... |
Сообщ.
#104
,
|
|
|
Цитата Der_Meister @ Ладно, оставим пока этот вопрос... Щас пляски с бубмном в расшифровке хранения картинок в BGI. Когда-то расковыривал. Ничего особо сложного - но аппаратно-зависимое там все. Так что для VGA 0х13, для а-ля EGA 16 цветов и CGA-шных - все разные... Кстати, а нужно ли вообще этим заниматься (реализацией 1:1)? Главное, чтобы сохраняло/восстанавливало... |
Сообщ.
#105
,
|
|
|
Цитата barazuk @ Кстати, а нужно ли вообще этим заниматься (реализацией 1:1)? Главное, чтобы сохраняло/восстанавливало... Я тоже над этим думаю, вдруг кому-нибудь, вроде меня, понадобится вывести битовый образ в файл. Там интересно так... 1 пиксел весит 10 байт. 4 пиксела весят 10 байт. 5 пикселов - уже 18 вроде. Самое главное, BGI "портит" всю предоставленную ему память. То есть обнуляешь массив, а он вместо 1 пиксела еще 3 левых пишет и т.д. |