Форум: "Игры";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c