Показать сообщение отдельно
Старый 29.01.2012, 22:31
anmelegov вне форума Посмотреть профиль Отправить личное сообщение для anmelegov Найти все сообщения от anmelegov
  № 5  
Ответить с цитированием
anmelegov

Регистрация: Nov 2009
Адрес: Украина, Славутич
Сообщений: 263
да но тебе дебагер пишет что у тебя есть физические тела без юзердаты и он не понимает че ты от него хочешь... сделай тогда проверку
Код AS1/AS2:
for (var bb:b2Body = m_world.m_bodyList; bb; bb = bb.m_next) {
				if(bb.m_userData != null) {Game.gameLink.removeChild(bb.m_userData as Sprite) };
                                m_world.DestroyBody(bb);
			}
Добавлено через 6 минут
как делаю я:
есть класс уровень, и есть спрайт уровня(в него засовывается фон уровня и текстуры всех тел которые есть в уровне, когда персонаж бежит по уровню этот спрайт двигается в противоположную сторону и получается что камера следит за ним)... вот так выглядит мой деструктор уровня:
Код AS1/AS2:
public function destruct():void{
	removeEventListener(Event.ENTER_FRAME, update);
	for (var bj:b2Joint = LevelVars.world.GetJointList(); bj; bj = bj.GetNext()) {
		LevelVars.world.DestroyJoint(bj);
	}
	for (var bb:b2Body = LevelVars.world.GetBodyList(); bb; bb = bb.GetNext()) {
		LevelVars.world.DestroyBody(bb);
	}
	for (var i:int = LevelVars.sprite.numChildren - 1; i >= 0; i--){ // этот спрайт является родительским для всех графических изображений элементов уровня и персонажей
		LevelVars.sprite.removeChildAt(i);
	}
	for (i = this.numChildren - 1; i >= 0; i--){
		this.removeChildAt(i);
	}
}
Добавлено через 7 минут
там еще где спрайты стираю должно быть битмэпдата.диспос() и затирание ссылок