1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/eran-CEPackerBox

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

CEPackerBox

CEPackerBox — это полезный инструмент, предоставленный CopyEngine.

Цель этого инструмента состоит в упаковке нескольких небольших битмап данных с помощью рациональной арифметики.

Упаковка вещей вместе — это старый и интересный вопрос, вы можете найти множество алгоритмов, используя Google.

Как это работает

CEPackerBox использует детекцию столкновений на уровне пикселей.

Да, это может показаться глупым.

Но это довольно мощно.

Как использовать

Сначала вы можете использовать файл SWC напрямую, либо импортировать проект и использовать его как ваш подключаемый модуль.

Затем просто вставьте этот код, и CEPackerBox будет готов к работе!

	var builder:CEPackerBuilder = new CEPackerBuilder();
	builder.initialize(_allBitmapDataDic, _packerBoxNamePR);
	builder.startPackData();

	trace(builder.getAllPackerBoxVector())
  • _allBitmapDataDic — это словарь, содержащий все данные битмап, которые вы хотите упаковать с помощью CEPackerBox.

    Ключ — это имя битмап, которое вы выбрали

    Значение — это источник битмап

  • _packerBoxNamePR — это префикс имени коробки, который вы выбираете, например, если вы выбрали "RedBox" для префикса,

    то сгенерированное имя коробки будет RedBox_1, RedBox_2, RedBox_3...

Пример

// =================================================================================================
//
//	CopyEngine Framework
//	Copyright 2012 Eran. Все права защищены.
//
//	Этот программный продукт является свободным программным обеспечением. Вы можете распространять и/или изменять его
//	в соответствии с условиями прилагаемого соглашения о лицензировании.
//
// =================================================================================================

package
{
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.utils.Dictionary;

	import copyengine.utils.packerbox.CEPackerBuilder;
	import copyengine.utils.packerbox.box.ICEPackerBox;
	import copyengine.utils.packerbox.data.CEPackerElementData;

	public class CEPackerBoxDemo extends Sprite
	{
		public function CEPackerBoxDemo()
		{
			var allBitmapDataDic:Dictionary = new Dictionary();

			//Подготовка тестовых данных
			for (var i:int = 0; i < 10; i++)
			{
				allBitmapDataDic["name_" + i] = new BitmapData(100, 100);
			}

			//Начало упаковки
			var builder:CEPackerBuilder = new CEPackerBuilder();
			builder.initialize(allBitmapDataDic, "DemoBox");
			builder.startPackData();

			//Завершение, весело проводите время!
			
			for each (var box:ICEPackerBox in builder.getAllPackerBoxVector())
			{
				trace("------Коробка: " + box.getBoxName() + " Размер: " + box.getBoxSize());
				for each (var data:CEPackerElementData in box.getAllBoxElement())
				{
					trace("              " + data.bitmapDataName + "       " + data.bitmapDataRe.toString());
				}
				trace("\n");
			}
		}
	}
}

Информация вывода

------Коробка: DemoBox_1 Размер: 256
              name_5       (x=0, y=0, w=100, h=100)
              name_1       (x=103, y=0, w=100, h=100)
              name_9       (x=0, y=102, w=100, h=100)
              name_7       (x=103, y=102, w=100, h=100)


------Коробка: DemoBox_2 Размер: 256
              name_8       (x=0, y=0, w=100, h=100)
              name_4       (x=103, y=0, w=100, h=100)
              name_0       (x=0, y=102, w=100, h=100)
              name_3       (x=103, y=102, w=100, h=100)


------Коробка: DemoBox_3 Размер: 256
              name_6       (x=0, y=0, w=100, h=100)
              name_2       (x=103, y=0, w=100, h=100)

Проблемы

iamzealotwang@126.com

Весело проводите время!

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Используйте способ обнаружения пикселей для реализации алгоритма упаковки. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/eran-CEPackerBox.git
git@api.gitlife.ru:oschina-mirror/eran-CEPackerBox.git
oschina-mirror
eran-CEPackerBox
eran-CEPackerBox
master