игра "приземление"
-
Я бы сказал, что утверждение не очень верное, потому что PNG можно хорошо оптимизировать через pngcrush, а RAW - не очень.
Leency, вероятно, хотел сказать, что авто-сборка принудительно сжимает все программы KPACK. А, как известно, хорошо уплотнённые файлы (например, PNG) после сжатия могут становиться даже больше, чем до сжатия. Для примера, попробуйте сжать несколько фотографий.SoUrcerer wrote:Я бы сказал, что утверждение не очень верное, потому что PNG можно хорошо оптимизировать через pngcrush, а RAW - не очень.
Поэтому, (ASM+RAW)->KPACK может в результате занимать места меньше, чем (ASM+PNG+LoadPNG)->KPACK.
Хотя отдельно (ASM+RAW) занимает больше, чем (ASM+PNG).
А зачем компилировать в бинарник сам PNG файл? Его нужно просто положить рядом и загружать. Не нужно упаковывать упакованное.yogev_ezra wrote:Поэтому, (ASM+RAW)->KPACK может в результате занимать места меньше, чем (ASM+PNG+LoadPNG)->KPACK.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Попробовал сжать KPACK'ом то что есть, получил бинарник 4 кб вместо 12 кб. Тогда, действительно, не нужно сжатых изображений, просто бинарник упаковывать. А я велосипед изобретал)
Любое знание и любой опыт на первый взгляд не нужные в текущий момент обязательно бывают нужны в будущем.segr wrote:А я велосипед изобретал)
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
segr
Особых сложностей со звуком нет, но микшировать семплы лучше самому.
Для примера стоит посмотреть исходники doom http://websvn.kolibrios.org/filedetails ... Fi_sound.c
http://websvn.kolibrios.org/filedetails ... Fs_sound.c
void S_Init() инициализация звуковой системы.
void sound_proc(void) поток, в котором работает микшер.
Когда происходит событие, Doom записывает адреса начала и конца семплов в один из свободных массивов (channels)
// The channel data pointers, start and end.
unsigned char* channels[NUM_CHANNELS];
unsigned char* channelsend[NUM_CHANNELS];
void I_UpdateSound( void ) собственно микшер. Поочерёдно выбирает семплы каждого активного канала и микширует.
API звуковой подсистемы http://websvn.kolibrios.org/listing.php ... 724a6c72f6
Особых сложностей со звуком нет, но микшировать семплы лучше самому.
Для примера стоит посмотреть исходники doom http://websvn.kolibrios.org/filedetails ... Fi_sound.c
http://websvn.kolibrios.org/filedetails ... Fs_sound.c
void S_Init() инициализация звуковой системы.
void sound_proc(void) поток, в котором работает микшер.
Когда происходит событие, Doom записывает адреса начала и конца семплов в один из свободных массивов (channels)
// The channel data pointers, start and end.
unsigned char* channels[NUM_CHANNELS];
unsigned char* channelsend[NUM_CHANNELS];
void I_UpdateSound( void ) собственно микшер. Поочерёдно выбирает семплы каждого активного канала и микширует.
API звуковой подсистемы http://websvn.kolibrios.org/listing.php ... 724a6c72f6
Абсолютно согласен. Я просто иронизировал.Mario_r4 wrote:Любое знание и любой опыт на первый взгляд не нужные в текущий момент обязательно бывают нужны в будущем.
Serge, спасибо за ссылки, изучаю
Игрушка зачётная. Чувствуется, что сделана с душой
Из хаоса в космос
Идея давно была, но руки не доходили, а тут колибри увидел...)
Разобрался со звуком, вот результат
Микшер писал только под 16-битные 2-канальные сэмплы, поэтому размер звуковых файлов довольно большой.
Разобрался со звуком, вот результат
Микшер писал только под 16-битные 2-канальные сэмплы, поэтому размер звуковых файлов довольно большой.
- Attachments
-
-
src.zip (509.15 KiB)
- исходники
Downloaded 301 times
-
bomber_0.1.zip (487.23 KiB)
- игра
Downloaded 298 times
-
Все замечательно, но вот взрывы бомб по краям экрана приводят к тому, что край окна затирается синим цветом.
А почему не использовать моно семплы? Для таких игр стерео уже роскошь.
А почему не использовать моно семплы? Для таких игр стерео уже роскошь.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Отлично всё получилось !
Есть ещё предложение сделать позиционирование звука. В зависимости от положения источника по горизонтали ослаблять левый или правый канал.
segr А есть семплы с большей частотой ? 24 КГц будет оптимально.
Mario_r4
Стерео лучше. И чем качественнее, тем лучше.
Есть ещё предложение сделать позиционирование звука. В зависимости от положения источника по горизонтали ослаблять левый или правый канал.
segr А есть семплы с большей частотой ? 24 КГц будет оптимально.
Mario_r4
Стерео лучше. И чем качественнее, тем лучше.
Вылет игры, если data-файл найден, но звук не работает (Hardware not found)
Звуки зачётные.
Звуки зачётные.
Из хаоса в космос
Это не только от бомб, но и от любого спрайта, который уходит за границы. До сих пор откладывал этот косяк. Думаю достаточно будет каждый раз перерисовывать рамку окна.Mario_r4 wrote:край окна затирается синим цветом.
Согласен насчет качественных звуков, пробовал меньшее качество, как то не так звучит. Сэмплы есть качественные, все звуки с инета. Думаю имеет смысл упаковать звуки в mp3. Как читать mp3 пока не знаю. Управлять раздельно левым и правым каналом для каждого звука не сложно - сразу сделал это в микшере, сделать позиционирование возможно, но, мое мнение, сначала нужно звуки упаковать.
Игра вылетает, скорей всего, при обращении к памяти по неинициализированному указателю. Косяк в коде. Буду смотреть.
Кстати, почему работа со звуком сделана только через драйвер? И микшер каждый раз писать приходится заново? Может имеет смысл выделить функции работы со звуком в отдельную библиотеку в системе, и просто обращаться из приложения, что-то вроде: "создать микшер (столько то каналов)", "проиграть сэмпл (микшер, указатель на сэмпл)" и т.д. И кодеки сделать системные. Или сделано уже?
Можно без mp3 - просто запаковать ресурсы kpack-ом и распаковывать в памяти во время загрузки. Для этого вроде бы есть библиотека. Пусть кто-то знающий расскажет.
Из хаоса в космос
kpack-ом пробовал, сжатие не очень (процентов на 30 размер уменьшился), звук обычными алгоритмами упаковки плохо сжимается. а mp3 - самое то, размер в разы уменьшится
Who is online
Users browsing this forum: No registered users and 2 guests