Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Попиксельное считывание картинки (http://www.flasher.ru/forum/showthread.php?t=85470)

Serbis 23.09.2006 04:37

Попиксельное считывание картинки
 
Мне необходимо реализовать генерацию 2d кары через битмэп. Т. е. у меня есть изображение на котороп пикселями изображено где какие области на карте должны распологаться, будь то лес, пустыня или вода. Так вот мне нужно считать эту картинку и создать карту из элементов.
Я вообще разработчик игр на Delphi и С,:bb: там я очень часто касался таких вопросов, и в основном создавал трехмерные карты, считывались там изображения очень просто, через системнай канвас или средствами граф библиотеки... Мне в новом проекте выпала очень интересная роль- Написать клиент игры на флешь почти с нулевыми знаниями флешь, ну вот за неделю я довольно хорошо освоился... Чет я заговорился:confused: . Так как это сделать на ActionScript?


И вот еще какой вопрос, возможно каким нибуть макаром импортировать и применить функции из OpenGL32.dll

Хемуль 23.09.2006 05:01

Цитата:

Сообщение от Serbis
Мне необходимо реализовать генерацию 2d кары через битмэп. Т. е. у меня есть изображение на котороп пикселями изображено где какие области на карте должны распологаться, будь то лес, пустыня или вода. Так вот мне нужно считать эту картинку и создать карту из элементов.
Я вообще разработчик игр на Delphi и С,:bb: там я очень часто касался таких вопросов, и в основном создавал трехмерные карты, считывались там изображения очень просто, через системнай канвас или средствами граф библиотеки... Мне в новом проекте выпала очень интересная роль- Написать клиент игры на флешь почти с нулевыми знаниями флешь, ну вот за неделю я довольно хорошо освоился... Чет я заговорился:confused: . Так как это сделать на ActionScript?


И вот еще какой вопрос, возможно каким нибуть макаром импортировать и применить функции из OpenGL32.dll

То есть, насколько я понял, у вас тайловый (от англ. tile) мир. Каждый тайл задаётся цветом пикселя в битмапе. То есть, цвет пикселя в какой-то позиции битмапа как бы является индексом тайла, определяющим его тип? Если так, то используйте BitmapData. Вот, почитайте: http://livedocs.macromedia.com/flash.../00001942.html
Клиент для игры должен запускаться в окне броузера или же быть EXE-приложением? Если второй вариант, то в свете вопроса по поводу OpenGL32.dll рекомендую взглянуть на MDM Zinc...

Serbis 23.09.2006 05:10

У меня сейчас нет возможности проверить, BitmapData работает только во Flash 8 или еще поддерживает Flash MX 2004

Хемуль 23.09.2006 05:18

2 Serbis:
8 и выше.
Если я вас правильно понял (прочитайте моё первое сообщение в теме и скажите, так ли это), то зачем вам хранить карты в битмапах? Чем вас не устраивают те же XML'и?

Serbis 23.09.2006 05:50

Мир слишком большой, и мне легче все запихннуть в пару тысяч битмепов.

Хемуль 23.09.2006 06:06

2 Serbis:
Можно написать простой редактор на том же С++, который сохраняет карты в XML, где тайловую карту рисуешь мышкой.
Мир, сохранённый в битмапе может занимать:
3 байта * количество пикселей (тайлов).
Если же говорить о BMP, то это ещё + 1 Кб для каждого файла на палитру.
С помощью XML можно выиграть в размере подгружаемых данных:
1 или 2 байта * количество тайлов.
К тому же Флеш может грузить внешнюю картинку только вроде из JPG-файлов, которые, как вам известно, со сжатием идут. А потому они не подходят для сохранения карт.
По поводу пары тысяч битмапов... Вы хоть представляете себе, сколько это может занять памяти? К чему вам такие обьёмы информации? Учтите, Флеш всё же создавался, наверное, не для игр...

iNils 23.09.2006 12:43

Цитата:

Сообщение от Хемуль
К тому же Флеш может грузить внешнюю картинку только вроде из JPG-файлов, которые, как вам известно, со сжатием идут. А потому они не подходят для сохранения карт.

8-ка грузит png и gif, а до нее просто загоняли данные форматы в пустые fla, генерили swf и грузили их.

Хемуль 23.09.2006 14:21

2 iNils:
Понятно. Хотя, думаю, товарищу Serbis'у GIF не подойдёт - палитровый.
Выходит, остаются у нас PNG и BMP... Если воспользоваться тем методом, о котором писали вы, то нашему собеседнику придётся иметь не пару тысяч битмапов, а пару тысяч SWF... И делать их придётся, насколько я понимаю, руками. ^_^

2 Serbis:
Видите, как всё получается? Всё равно неудобно. Лучше придумать какой-то другой формат для хранения данных.

iNils 23.09.2006 14:45

Цитата:

Сообщение от Serbis
У меня сейчас нет возможности проверить, BitmapData работает только во Flash 8 или еще поддерживает Flash MX 2004

Только начиная с 8-ки.

Цитата:

Сообщение от Хемуль
Понятно. Хотя, думаю, товарищу Serbis'у GIF не подойдёт - палитровый.
Выходит, остаются у нас PNG и BMP...

Если он расчитывает под 8-ку, то png достаточно.
Цитата:

Сообщение от Хемуль
Если воспользоваться тем методом, о котором писали вы, то нашему собеседнику придётся иметь не пару тысяч битмапов, а пару тысяч SWF... И делать их придётся, насколько я понимаю, руками. ^_^

Есль php библиотека ming, которая генерит swf. Полные ее возможности я не знаю, но возможно она может брать указанную картинку, загонять ее в swf отдавать его.

Хемуль 23.09.2006 20:37

http://ming.sourceforge.net/docs/swfbitmap.php?mode=
^_^


Часовой пояс GMT +4, время: 09:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.