Показать сообщение отдельно
Старый 24.04.2009, 15:28
DRAGOnoid вне форума Посмотреть профиль Отправить личное сообщение для DRAGOnoid Посетить домашнюю страницу DRAGOnoid Найти все сообщения от DRAGOnoid
  № 4  
Ответить с цитированием
DRAGOnoid
 
Аватар для DRAGOnoid

Регистрация: Jan 2004
Адрес: Moscow
Сообщений: 389
Отправить сообщение для DRAGOnoid с помощью ICQ
клёва silin! чуть позже буду дома и гляну обязательно, + попробую написать простенький пример чего хочется добиться, наглядный пример лучший пример!

кстати мне до недавнего времени нравился мой метод сортировки, у которого взят за основу твой (правда старый):

Код AS3:
var array:Array = new Array();
var numChildren:int = this.numChildren;
for (var childIndex:int = 0; childIndex < numChildren; childIndex++) {
	var sprite:DisplayObject = this.getChildAt(childIndex);
	try {
		var vector3D:Vector3D = sprite.transform.getRelativeMatrix3D(root).position;
		vector3D.x -= stage.stageWidth / 2;
		vector3D.y -= stage.stageHeight / 2;
		vector3D.z += Math.round(root.transform.perspectiveProjection.focalLength * 1);
		array.push({length:vector3D.length, sprite:sprite});
	} catch (error:Error) {
		array.push({length:0, sprite:sprite});
	}
}		
array.sortOn('length', Array.DESCENDING);
for (var i:Object in array)
	this.addChild(array[i].sprite);
получаю таким образом расстояние, вбиваю в массив, сортирую и добавляю на сцену. сортировать по Z координате вообще тупо так как у кубика бывает 4 граени равноудалены от плоскости - root но двигая кубик по x координате грани так и не сортируются.

Если бы была возможность получить правильный вектор от точки обзора до объекта и правильный вектор нормали, то можно было бы найти правильный угол между этими векторами и определить лицевую и заднюю сторону спрайта. если на задний вид поставить visible=false а на передний visible=true не пришлось бы трогать addChild вообще, и кубик бы рисовался чётко и быстро )
__________________
Black DRAGON хочет кушать Т_Т


Последний раз редактировалось DRAGOnoid; 24.04.2009 в 15:57.