Главная страница
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.48 MB
Время: 0.048 c
1-1089875368
Alex197777777777777
2004-07-15 11:09
2004.08.01
Почему D7 неправильно вычисляет выражение. Скоро поедет крыша


14-1089998541
Белый Крыс
2004-07-16 21:22
2004.08.01
Как мне вас жаль!


1-1090045555
ko
2004-07-17 10:25
2004.08.01
Процедуры


3-1087832937
ceval
2004-06-21 19:48
2004.08.01
DBGrid показено только несколько полей,а как другие поля таблицы


3-1089209563
djoni21
2004-07-07 18:12
2004.08.01
Как перекомпелировать dll под Linux