Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
4-1087557999
vertal
2004-06-18 15:26
2004.08.01
Использование CreateThread в Delphi


3-1089283092
Ani
2004-07-08 14:38
2004.08.01
Как отабразить данные в Query после того я ввожу их в Table?


14-1089620789
Dmitriy O.
2004-07-12 12:26
2004.08.01
Разработка компьютерной системы для полета на Марс


1-1089707283
Shc
2004-07-13 12:28
2004.08.01
Как сделать инспектор объектов?


1-1090235363
Dysan
2004-07-19 15:09
2004.08.01
хранение данных в стриме





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский