Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.51 MB
Время: 0.025 c
9-1117475173
WandR
2005-05-30 21:46
2005.10.09
Проблема с затекстуриванием


4-1123710061
Vadimich
2005-08-11 01:41
2005.10.09
Каким образом винда закрывает программы при рестарте?


3-1125307147
Rob
2005-08-29 13:19
2005.10.09
Проблема с переносом скрипта из QA в редактор TQuery


6-1118869933
GEEK
2005-06-16 01:12
2005.10.09
Как проверить доменное имя?


2-1125150534
shaih
2005-08-27 17:48
2005.10.09
Запись изображения и последующее отображение из бд