![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уничтожение объекта в GLScene [Delphi, Windows]
Nafander © (2002-08-20 08:38:00)При выстреле к объекту TFreeForm летит ракета, когда она его достигает он взрывается(происходит резкое тормажение движение всех объектов), используя эфект взрыва, как мне сделать Destroy этого объекта, но после взрыва?
SI-riuss (2002-08-24 11:51:00) [1]Вот я и думаю, что пусть у тебя кораблик будет TActor и во время взрыва будут заданы другие кадры (эффект разлетающегося в куски корабля), а потом пусть летает Груда металла - так реальнее.
Nafander (2002-08-22 11:26:00) [2]Да просто космический кораблик, он просто разлетается на куски.
Но эти самые куски-то летят где-то и тормозят всю сцену.
SI-riuss (2002-08-21 22:57:00) [3]А зачем тебе убирать объект со сцены? После взрыва ведь всегда что-то остается. Вот и подгрузи это что-то (например модель подбитого танка). Или у тебя ракета с ядерным боезарядом (тогда надо закрывать программу вообще нафиг и инициировать ошибку виндоус)? Или ракета попадает по муравью? :)
Владимир Васильев (2002-08-20 11:57:00) [4]как и всегда просто ***.Free
Далее вызовется переопределённый Destroy к-торый освободит всё связанное c уничтожаемым объектом :
destructor TGLBaseSceneObject.Destroy;
begin
DeleteChildCameras;
FreeMem(FAbsoluteMatrix, SizeOf(TMatrix)*2);
FGLObjectEffects.Free;
FGLBehaviours.Free;
FListHandle.Free;
FPosition.Free;
FRotation.Free;
FDirection.Free;
FUp.Free;
FScaling.Free;
FSortDistList.Free;
FSortObjList.Free;
if Assigned(FParent) then FParent.Remove(Self, False);
if FChildren.Count>0 then DeleteChildren;
FChildren.Free;
inherited Destroy;
end;