![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GLScene - классы [Delphi, Windows]
Slavikk © (2005-05-27 08:40:00)В начале проги я прописываю класс,
1) Как дальше вызвать предмет принадлежаший этому классу
2) Как параметры этого предмета взять из .ini или .txt
Slavikk (2005-06-06 10:22:00) [1]Тутова я, живой. Всё что было интерестно узнал. Спасибо!!
Fosgen (2005-06-06 09:39:00) [2]А что тут еще развивать-то?
Вот видимо "зачинщик" темы (Slavikk) и схлопнулся...
Ищущий (2005-06-06 08:56:00) [3]Кстати, а где Slavikk ?
Ищущий (2005-06-06 08:49:00) [4]ОГРОМНОЕ СПАСИБО ВСЕМ кто принимает участие в данной ветке
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;
Буду благодарен за развитие темы.
Zer0 (2005-06-04 16:33:00) [5]у каждого класса есть "бесполезное" поле тег. если при создании планет как простых объектов GLScene в тег заносить уникальные числа, то потом зная только тег объекта под курсором можно определить что угодно.
Fosgen (2005-06-04 09:29:00) [6]1. Тебя интересует как сделать класс? Это к учебнику по ООП...
Хотя..
type TPlanet = class
private
public
Name:String;
end;
2.Object:TPlanet;
Object:=TPlanet.Create;
Object.Name:='MOON';
3. А тут вопрос к тебе - ты что используешь? Чистый OGL, DirectX,GLScene? По GLScene я тебе подскажу что в обработчике событий от мыши используешьGetpPickedObject()и в принципе этого должно хватить.
Ищущий (2005-06-03 08:48:00) [7]2Fosgen
Контекст поподробнее:
1. Делаем класс (напр. TPlanet)
2. При добавлении объекта создаем экземпляр класса с определенными свойствами(например это Луна с ником MOON)
3. В программе: наводим курсор на вращающийся шар и с радостью узнаем что это Луна(а также её партийную кличку)
Мне интересны именно ВАРИАНТЫ решения данного вопроса.
Zer0 (2005-06-02 18:17:00) [8][чорт! промазал блин =(]
Zer0 (2005-06-02 18:16:00) [9]Если все делать по чесному, то придется писать процедуру проверки столкновения луча, выходящего из ценра камеры и направленного в определенном направлении (зависит от fov и положения мышы относительно центра экрана) со всей сценой. (ессно тут придется использовать какой либо вид оптимизации).
В жлцсене есть процедуры соотвествненно ScreenToVector и RayCastIntersect.
Ну а если заморачивацо не хочетсо то надо посмотреть дему interface\pick
Fosgen (2005-06-02 18:03:00) [10]2 Ищущий : А если посеръезнее - скорее у объекта должна быть ссылка на экземпляр класса, дабы от объекта получать доступ к имени оного экземпляра.
Fosgen (2005-06-02 18:00:00) [11]2 Ищущий : Можно описать контекст поподробнее? Особенно если учесть что сама обработка события от "наведении на объект указателя маши" и получения имени экземпляра класса - две слабо связанные отдельные задачи...
XProger (2005-06-02 17:47:00) [12]Obj[i].ClassName?
Ищущий (2005-06-02 15:54:00) [13]Хорошо... В развитие вопроса. Допустим класс сделан, добавлены свойства и функции. Устанавливаем экземпляру класса ссылку на объект и ,допустим, имя. Как при наведении на объект указателя маши получить имя экземпляра класса...
Кефир87 (2005-05-27 21:30:00) [14]
> 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)
Xeno (2005-05-27 21:25:00) [15]>Кефир87
Похоже именно про них :)))
Кефир87 (2005-05-27 20:52:00) [16]Вопрос про классы? про те самые обычные классы? Или я чего-то не понял?
DeadMeat (2005-05-27 10:40:00) [17]Чета не могу сообразить, причем тут GLScene..
Xeno (2005-05-27 09:54:00) [18]Думаю на такие вопросы тебе вряд ли что-то хорошее ответят,это-же основы, читай литературу и доки по программированию, к счастью этого добра в инете полно :)