Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.01;
Скачать: CL | DM;

Вниз

GLScene как правильно удалить объект?   Найти похожие ветки 

 
КиТаЯц   (2004-04-22 09:51) [0]

Вопрос для тех кто работал с GLScene (!)
Ситуация такая: насоздавал объектов tActor (враги). SMD модели. Они бегют и на героя нападают. Герой из убивает. Включается анамация типа смерть. А как правильно вообще удалить объект из памяти? ну... и труп соответственно :) Как не пробовал все одно - access violation (будь он неладен :( ) Поделитесь кодом плиз. Спасибо.


 
Yar-Com   (2004-04-22 09:57) [1]

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

if Vrag.State = vsTrup then Vrag.Destroy;

:^)


 
КиТаЯц   (2004-04-22 15:10) [2]

Хех... Получилось! Держите, может кому еще пригодится

Вот так я добавлял:
var NewEnemy: tGLActor;
begin
NewEnemy:= tGLActor(GLScene1.Objects.AddNewChild(tGLActor));
NewEnemy.Name:="Vrag"+inttostr(nomer); // глобальная переменная типа "табельный номер" :)
 with NewEnemy do begin
   LoadFromFile("файл");
   ...
   // задаем свойства
   ...  
 end;
end;


А вот так Vrag as Trup :) без проблемм удаляется...
var ToDel: tComponent;
begin
ToDel:= nil;
ToDel:= GLScene1.FindSceneObject("Vrag"+inttostr(nomer));
if ToDel <> nil then ToDel.Destroy;
end;


Еще вопросик... Как в GLScene ТОЧНО поворачивать статичный (или не статичный) объект в сторону движущегося. Ну типа автоматическая винтовка иракского партизана держит не прицеле летящий американский апач? А то у меня как-то криво наводится...


 
Yar-Com   (2004-04-22 15:26) [3]

ну у винтовки есть вектор указывающий ее напрвление

находишь вектор указывающий на вертолет

вычисляешь угол между вектором винтовки и вектором "вертика"

ну а далее поворачиваешь вектор винтовки вокруг перпендикуляра к плоскости образованной из вектора направления винтовки и вектора направления на вертолет %)

чтоб найти этот перпендикуляр нужно произвести операцию векторного умножения над вектором винтовки и вектором напрвления на вертолет

вроде все....


 
КиТаЯц   (2004-04-23 09:08) [4]

Мдяс... Спасибо за совет. Долго я углы с перпендикулярами вычислял, но винтовка выровнялась когда сделал так:

procedure TMainForm.GLCadencerProgress(Sender: TObject; const deltaTime, newTime: Double);
begin
...
Винтовка.PointTo(GLSCene.FindSceneObject("Вертолет"),YHmgVector);
Партизан тоже на вертолет смотрит...
Партизан.PointTo(GLSCene.FindSceneObject("Вертолет"),YHmgVector);А вот чтобы об брюхо к небу не задирал...
Партизан.Up.y := 0;
...
end;


 
Yar-Com   (2004-04-23 09:18) [5]

хе )) яж говорю что нерублю в GLScene потому и совет общий был )



Страницы: 1 вся ветка

Текущий архив: 2004.08.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.046 c
14-1089679372
Monster
2004-07-13 04:42
2004.08.01
Исходник


14-1089396760
Mell
2004-07-09 22:12
2004.08.01
Кто нить знает хоть один адрес типа рамблер.ру русскими буквам


3-1089286411
Vopros
2004-07-08 15:33
2004.08.01
Имя пользователя


1-1090267143
AndrewVolkov
2004-07-19 23:59
2004.08.01
Непонятки с существованием объекта


1-1090309196
Жорик
2004-07-20 11:39
2004.08.01
Глюк при вызове функции