Главная страница
    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.038 c
1-1089546925
Piter
2004-07-11 15:55
2004.08.01
Неправильное отображение шрифтов в Дельфи


1-1090283167
Alexey Leonchik
2004-07-20 04:26
2004.08.01
Функция округления


4-1086938374
leonidus
2004-06-11 11:19
2004.08.01
Плавающее окошко как у FlashGet


1-1089892632
nastya
2004-07-15 15:57
2004.08.01
печать нескольких списков в одном отчете


4-1087311145
Антон
2004-06-15 18:52
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский