Текущий архив: 2005.10.09;
Скачать: CL | DM;
Вниз
GLScene - классы Найти похожие ветки
← →
Slavikk (2005-05-27 08:40) [0]В начале проги я прописываю класс,
1) Как дальше вызвать предмет принадлежаший этому классу
2) Как параметры этого предмета взять из .ini или .txt
← →
Xeno © (2005-05-27 09:54) [1]Думаю на такие вопросы тебе вряд ли что-то хорошее ответят,это-же основы, читай литературу и доки по программированию, к счастью этого добра в инете полно :)
← →
DeadMeat © (2005-05-27 10:40) [2]Чета не могу сообразить, причем тут GLScene..
← →
Кефир87 (2005-05-27 20:52) [3]Вопрос про классы? про те самые обычные классы? Или я чего-то не понял?
← →
Xeno © (2005-05-27 21:25) [4]>Кефир87
Похоже именно про них :)))
← →
Кефир87 (2005-05-27 21:30) [5]
> 1) Как дальше вызвать предмет принадлежаший этому классуTMyCoolClass = class
predmet : TPredmet;
constructor Create;
end;
<..>constructor TMyCoolClass.Create;
begin
predmet := TPredmet.Create;
end;
<..>
var
MyCoolClass : TMyCoolClass;
<...>MyCoolClass := TMyCoolClass.Create;
<...>MyCoolClass.predmet.take;
Надо людям помогать 8)
← →
Ищущий (2005-06-02 15:54) [6]Хорошо... В развитие вопроса. Допустим класс сделан, добавлены свойства и функции. Устанавливаем экземпляру класса ссылку на объект и ,допустим, имя. Как при наведении на объект указателя маши получить имя экземпляра класса...
← →
XProger © (2005-06-02 17:47) [7]Obj[i].ClassName?
← →
Fosgen (2005-06-02 18:00) [8]2 Ищущий : Можно описать контекст поподробнее? Особенно если учесть что сама обработка события от "наведении на объект указателя маши" и получения имени экземпляра класса - две слабо связанные отдельные задачи...
← →
Fosgen (2005-06-02 18:03) [9]2 Ищущий : А если посеръезнее - скорее у объекта должна быть ссылка на экземпляр класса, дабы от объекта получать доступ к имени оного экземпляра.
← →
Zer0 © (2005-06-02 18:16) [10]Если все делать по чесному, то придется писать процедуру проверки столкновения луча, выходящего из ценра камеры и направленного в определенном направлении (зависит от fov и положения мышы относительно центра экрана) со всей сценой. (ессно тут придется использовать какой либо вид оптимизации).
В жлцсене есть процедуры соотвествненно ScreenToVector и RayCastIntersect.
Ну а если заморачивацо не хочетсо то надо посмотреть дему interface\pick
← →
Zer0 © (2005-06-02 18:17) [11][чорт! промазал блин =(]
← →
Ищущий (2005-06-03 08:48) [12]2Fosgen
Контекст поподробнее:
1. Делаем класс (напр. TPlanet)
2. При добавлении объекта создаем экземпляр класса с определенными свойствами(например это Луна с ником MOON)
3. В программе: наводим курсор на вращающийся шар и с радостью узнаем что это Луна(а также её партийную кличку)
Мне интересны именно ВАРИАНТЫ решения данного вопроса.
← →
Fosgen (2005-06-04 09:29) [13]1. Тебя интересует как сделать класс? Это к учебнику по ООП...
Хотя..
type TPlanet = class
private
public
Name:String;
end;
2.Object:TPlanet;
Object:=TPlanet.Create;
Object.Name:="MOON";
3. А тут вопрос к тебе - ты что используешь? Чистый OGL, DirectX,GLScene? По GLScene я тебе подскажу что в обработчике событий от мыши используешьGetpPickedObject()
и в принципе этого должно хватить.
← →
Zer0 © (2005-06-04 16:33) [14]у каждого класса есть "бесполезное" поле тег. если при создании планет как простых объектов GLScene в тег заносить уникальные числа, то потом зная только тег объекта под курсором можно определить что угодно.
← →
Ищущий (2005-06-06 08:49) [15]ОГРОМНОЕ СПАСИБО ВСЕМ кто принимает участие в данной ветке
2Fosgen - Использую GLScene. GetPickedObject() - от него и плясал.
2ZerO Решение в принципе стандартное, но требует организации структуры хранящей данные о соответствии тега и экземпляра класса;
Решение которым сейчас пользуюсь:
---
на MouseMove
GetObject:=GLSceneViewer1.Buffer.GetPickedObject(x,y);
---
procedure TForm1.GLCadencer1Progress(Sender: TObject; const deltaTime,
newTime: Double);
var sd: string;
begin
if Assigned(GivObject) then
begin
if GetObject is THarakter then
begin
sd:=(GetObject as THarakter).GetDate_o;
showmessage(sd);
end;
end;
end;
Буду благодарен за развитие темы.
← →
Ищущий (2005-06-06 08:56) [16]Кстати, а где Slavikk ?
← →
Fosgen (2005-06-06 09:39) [17]А что тут еще развивать-то?
Вот видимо "зачинщик" темы (Slavikk) и схлопнулся...
← →
Slavikk (2005-06-06 10:22) [18]Тутова я, живой. Всё что было интерестно узнал. Спасибо!!
Страницы: 1 вся ветка
Текущий архив: 2005.10.09;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.017 c