Board.KolibriOS.org
http://board.kolibrios.org/

игра "приземление"
http://board.kolibrios.org/viewtopic.php?f=41&t=2406
Page 2 of 3

Author:  SoUrcerer [ Tue Sep 17, 2013 3:55 pm ]
Post subject:  Re: игра "приземление"

Я бы сказал, что утверждение не очень верное, потому что PNG можно хорошо оптимизировать через pngcrush, а RAW - не очень.

Author:  yogev_ezra [ Tue Sep 17, 2013 7:00 pm ]
Post subject:  Re: игра "приземление"

SoUrcerer wrote:
Я бы сказал, что утверждение не очень верное, потому что PNG можно хорошо оптимизировать через pngcrush, а RAW - не очень.
Leency, вероятно, хотел сказать, что авто-сборка принудительно сжимает все программы KPACK. А, как известно, хорошо уплотнённые файлы (например, PNG) после сжатия могут становиться даже больше, чем до сжатия. Для примера, попробуйте сжать несколько фотографий.

Поэтому, (ASM+RAW)->KPACK может в результате занимать места меньше, чем (ASM+PNG+LoadPNG)->KPACK.
Хотя отдельно (ASM+RAW) занимает больше, чем (ASM+PNG).

Author:  Mario_r4 [ Tue Sep 17, 2013 7:53 pm ]
Post subject:  Re: игра "приземление"

yogev_ezra wrote:
Поэтому, (ASM+RAW)->KPACK может в результате занимать места меньше, чем (ASM+PNG+LoadPNG)->KPACK.

А зачем компилировать в бинарник сам PNG файл? Его нужно просто положить рядом и загружать. Не нужно упаковывать упакованное.

Author:  segr [ Tue Sep 17, 2013 10:11 pm ]
Post subject:  Re: игра "приземление"

Попробовал сжать KPACK'ом то что есть, получил бинарник 4 кб вместо 12 кб. Тогда, действительно, не нужно сжатых изображений, просто бинарник упаковывать. А я велосипед изобретал)

Author:  Mario_r4 [ Tue Sep 17, 2013 10:45 pm ]
Post subject:  Re: игра "приземление"

segr wrote:
А я велосипед изобретал)

Любое знание и любой опыт на первый взгляд не нужные в текущий момент обязательно бывают нужны в будущем.

Author:  Serge [ Wed Sep 18, 2013 3:26 pm ]
Post subject:  Re: игра "приземление"

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

Author:  segr [ Wed Sep 18, 2013 8:12 pm ]
Post subject:  Re: игра "приземление"

Mario_r4 wrote:
Любое знание и любой опыт на первый взгляд не нужные в текущий момент обязательно бывают нужны в будущем.
Абсолютно согласен. Я просто иронизировал.

Serge, спасибо за ссылки, изучаю

Author:  Leency [ Sun Sep 22, 2013 7:23 pm ]
Post subject:  Re: игра "приземление"

Игрушка зачётная. Чувствуется, что сделана с душой :)

Author:  segr [ Sun Sep 29, 2013 5:21 pm ]
Post subject:  Re: игра "приземление"

Идея давно была, но руки не доходили, а тут колибри увидел...)

Разобрался со звуком, вот результат

Микшер писал только под 16-битные 2-канальные сэмплы, поэтому размер звуковых файлов довольно большой.

Attachments:
File comment: исходники
src.zip [509.15 KiB]
Downloaded 132 times
File comment: игра
bomber_0.1.zip [487.23 KiB]
Downloaded 129 times

Author:  Mario_r4 [ Sun Sep 29, 2013 10:38 pm ]
Post subject:  Re: игра "приземление"

Все замечательно, но вот взрывы бомб по краям экрана приводят к тому, что край окна затирается синим цветом.
А почему не использовать моно семплы? Для таких игр стерео уже роскошь. :-)

Author:  Serge [ Sun Sep 29, 2013 10:42 pm ]
Post subject:  Re: игра "приземление"

Отлично всё получилось !
Есть ещё предложение сделать позиционирование звука. В зависимости от положения источника по горизонтали ослаблять левый или правый канал.
segr А есть семплы с большей частотой ? 24 КГц будет оптимально.
Mario_r4
Стерео лучше. И чем качественнее, тем лучше.

Author:  Leency [ Mon Sep 30, 2013 12:08 am ]
Post subject:  Re: игра "приземление"

Вылет игры, если data-файл найден, но звук не работает (Hardware not found)
Звуки зачётные.

Author:  segr [ Mon Sep 30, 2013 7:25 am ]
Post subject:  Re: игра "приземление"

Mario_r4 wrote:
край окна затирается синим цветом.

Это не только от бомб, но и от любого спрайта, который уходит за границы. До сих пор откладывал этот косяк. Думаю достаточно будет каждый раз перерисовывать рамку окна.

Согласен насчет качественных звуков, пробовал меньшее качество, как то не так звучит. Сэмплы есть качественные, все звуки с инета. Думаю имеет смысл упаковать звуки в mp3. Как читать mp3 пока не знаю. Управлять раздельно левым и правым каналом для каждого звука не сложно - сразу сделал это в микшере, сделать позиционирование возможно, но, мое мнение, сначала нужно звуки упаковать.

Игра вылетает, скорей всего, при обращении к памяти по неинициализированному указателю. Косяк в коде. Буду смотреть.

Кстати, почему работа со звуком сделана только через драйвер? И микшер каждый раз писать приходится заново? Может имеет смысл выделить функции работы со звуком в отдельную библиотеку в системе, и просто обращаться из приложения, что-то вроде: "создать микшер (столько то каналов)", "проиграть сэмпл (микшер, указатель на сэмпл)" и т.д. И кодеки сделать системные. Или сделано уже?

Author:  Leency [ Mon Sep 30, 2013 9:57 am ]
Post subject:  Re: игра "приземление"

Можно без mp3 - просто запаковать ресурсы kpack-ом :) и распаковывать в памяти во время загрузки. Для этого вроде бы есть библиотека. Пусть кто-то знающий расскажет.

Author:  segr [ Mon Sep 30, 2013 10:16 am ]
Post subject:  Re: игра "приземление"

kpack-ом пробовал, сжатие не очень (процентов на 30 размер уменьшился), звук обычными алгоритмами упаковки плохо сжимается. а mp3 - самое то, размер в разы уменьшится

Page 2 of 3 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/