Просмотр полной версии : Попиксельное считывание картинки
Мне необходимо реализовать генерацию 2d кары через битмэп. Т. е. у меня есть изображение на котороп пикселями изображено где какие области на карте должны распологаться, будь то лес, пустыня или вода. Так вот мне нужно считать эту картинку и создать карту из элементов.
Я вообще разработчик игр на Delphi и С,:bb: там я очень часто касался таких вопросов, и в основном создавал трехмерные карты, считывались там изображения очень просто, через системнай канвас или средствами граф библиотеки... Мне в новом проекте выпала очень интересная роль- Написать клиент игры на флешь почти с нулевыми знаниями флешь, ну вот за неделю я довольно хорошо освоился... Чет я заговорился:confused: . Так как это сделать на ActionScript?
И вот еще какой вопрос, возможно каким нибуть макаром импортировать и применить функции из OpenGL32.dll
Мне необходимо реализовать генерацию 2d кары через битмэп. Т. е. у меня есть изображение на котороп пикселями изображено где какие области на карте должны распологаться, будь то лес, пустыня или вода. Так вот мне нужно считать эту картинку и создать карту из элементов.
Я вообще разработчик игр на Delphi и С,:bb: там я очень часто касался таких вопросов, и в основном создавал трехмерные карты, считывались там изображения очень просто, через системнай канвас или средствами граф библиотеки... Мне в новом проекте выпала очень интересная роль- Написать клиент игры на флешь почти с нулевыми знаниями флешь, ну вот за неделю я довольно хорошо освоился... Чет я заговорился:confused: . Так как это сделать на ActionScript?
И вот еще какой вопрос, возможно каким нибуть макаром импортировать и применить функции из OpenGL32.dll
То есть, насколько я понял, у вас тайловый (от англ. tile) мир. Каждый тайл задаётся цветом пикселя в битмапе. То есть, цвет пикселя в какой-то позиции битмапа как бы является индексом тайла, определяющим его тип? Если так, то используйте BitmapData. Вот, почитайте: http://livedocs.macromedia.com/flash/8/main/00001942.html
Клиент для игры должен запускаться в окне броузера или же быть EXE-приложением? Если второй вариант, то в свете вопроса по поводу OpenGL32.dll рекомендую взглянуть на MDM Zinc...
У меня сейчас нет возможности проверить, BitmapData работает только во Flash 8 или еще поддерживает Flash MX 2004
2 Serbis:
8 и выше.
Если я вас правильно понял (прочитайте моё первое сообщение в теме и скажите, так ли это), то зачем вам хранить карты в битмапах? Чем вас не устраивают те же XML'и?
Мир слишком большой, и мне легче все запихннуть в пару тысяч битмепов.
2 Serbis:
Можно написать простой редактор на том же С++, который сохраняет карты в XML, где тайловую карту рисуешь мышкой.
Мир, сохранённый в битмапе может занимать:
3 байта * количество пикселей (тайлов).
Если же говорить о BMP, то это ещё + 1 Кб для каждого файла на палитру.
С помощью XML можно выиграть в размере подгружаемых данных:
1 или 2 байта * количество тайлов.
К тому же Флеш может грузить внешнюю картинку только вроде из JPG-файлов, которые, как вам известно, со сжатием идут. А потому они не подходят для сохранения карт.
По поводу пары тысяч битмапов... Вы хоть представляете себе, сколько это может занять памяти? К чему вам такие обьёмы информации? Учтите, Флеш всё же создавался, наверное, не для игр...
К тому же Флеш может грузить внешнюю картинку только вроде из JPG-файлов, которые, как вам известно, со сжатием идут. А потому они не подходят для сохранения карт.8-ка грузит png и gif, а до нее просто загоняли данные форматы в пустые fla, генерили swf и грузили их.
2 iNils:
Понятно. Хотя, думаю, товарищу Serbis'у GIF не подойдёт - палитровый.
Выходит, остаются у нас PNG и BMP... Если воспользоваться тем методом, о котором писали вы, то нашему собеседнику придётся иметь не пару тысяч битмапов, а пару тысяч SWF... И делать их придётся, насколько я понимаю, руками. ^_^
2 Serbis:
Видите, как всё получается? Всё равно неудобно. Лучше придумать какой-то другой формат для хранения данных.
У меня сейчас нет возможности проверить, BitmapData работает только во Flash 8 или еще поддерживает Flash MX 2004
Только начиная с 8-ки.
Понятно. Хотя, думаю, товарищу Serbis'у GIF не подойдёт - палитровый.
Выходит, остаются у нас PNG и BMP...
Если он расчитывает под 8-ку, то png достаточно.
Если воспользоваться тем методом, о котором писали вы, то нашему собеседнику придётся иметь не пару тысяч битмапов, а пару тысяч SWF... И делать их придётся, насколько я понимаю, руками. ^_^Есль php библиотека ming, которая генерит swf. Полные ее возможности я не знаю, но возможно она может брать указанную картинку, загонять ее в swf отдавать его.
http://ming.sourceforge.net/docs/swfbitmap.php?mode=
^_^
http://ming.sourceforge.net/docs/swfbitmap.php?mode=
^_^
Значит все такие конвертит только jpeg. Можно еще это посмотреть http://www.quasimondo.com/archives/000407.php
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.