Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2009, 02:23   #1
lerka
Пользователь
 
Аватар для lerka
 
Регистрация: 19.03.2009
Сообщений: 14
Печаль как переключаться между объектами в сцене?

Delphi 7 + OpenGL, из 3dMax'a импортированы объекты (сейчас кубики, планируется мебель) и нужно между ними переключаться и их крутить и двигать.

Нужно вращать объекты в сцене по очереди, либо группами; объектов пока не много - около 10.
Например при нажатии на "1" вращается первый, "2" - второй, а "1, 2" - 1й и 2й. Подскажите пожалуйста - не получается.
переключаться между отдельными объектами получается,

пример для 2х объектов:
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);

begin
Label1.Caption := IntToStr(Key);
 case Key of
   48..57: NumObjSelect := Key-48;
   37: case NumObjSelect of
     1: rotz := rotz+1;
     2: rotzz := rotzz+1;
   end;
   39: case NumObjSelect of
     1: rotz := rotz-1;
     2: rotzz := rotzz-1;
   end;
но как выделять их группами?

Последний раз редактировалось lerka; 19.03.2009 в 10:25. Причина: дополнение
lerka вне форума Ответить с цитированием
Старый 19.03.2009, 12:27   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Delphi 7 + OpenGL, из 3dMax'a импортированы объекты
Если не секрет как?
Цитата:
но как выделять их группами?
Смотря что ты имееш ввиду под словом "выделять".
Ну яб в массив вносил ссылки на эти обьекты, а потом просто применял процедуру преобразования к нескольким элементам массива.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.03.2009, 13:29   #3
lerka
Пользователь
 
Аватар для lerka
 
Регистрация: 19.03.2009
Сообщений: 14
По умолчанию

http://www.programmersforum.ru/showt...d=1#post223808

если нужно - могу с кубиком пример отправить

в принципе я примерно так и предполагала, только как связать нажатия кнопок с объектами все равно не понимаю
lerka вне форума Ответить с цитированием
Старый 19.03.2009, 13:51   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если нужно - могу с кубиком пример отправить
Приаттач сюда если не сложно.
Цитата:
как связать нажатия кнопок с объектами
Ну судя по твоим методам примерно так:
Код:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);

begin
Label1.Caption := IntToStr(Key);
 case Key of
   
   37: begin
          for i:=low(obj) to high(obj) do obj[i].rot.z:=obj[i].rot.z+1;
         end;
Это все будет вращать, а если не все хочеш, то рекомендую добавить к TObj поле Selected:boolean, где будет указано - селектирован ли обьект или нет. Тогда можно вращать выбраные так:

Код:
for i:=low(obj) to high(obj) do 
if obj[i].Selected then obj[i].rot.z:=obj[i].rot.z+1;
Яснышко?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.03.2009, 14:01   #5
lerka
Пользователь
 
Аватар для lerka
 
Регистрация: 19.03.2009
Сообщений: 14
По умолчанию

да! спасибо!!!
http://ifolder.ru/11130884 - там весь проект
lerka вне форума Ответить с цитированием
Старый 19.03.2009, 14:45   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Данке Шон...
Мне как трехмершику любая помошь в этом направлении пригодится. Раньше я GLScene использовал, тож ниче так успехи...
Вот только хочется научиться открывать непосредственно max форматы.
Уж было думал задействовать библиотеки самого MAXа...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать расстояние между делениями у Тракбара? Кирилл13 Помощь студентам 1 11.11.2008 11:44
Как заполнить форму 6-иугольными объектами DeKot Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 26.08.2008 21:59
Как грамотно разделить данные между потоками? bagulma Общие вопросы Delphi 5 28.05.2008 22:41
Как сравнить элементы 2 массивов между собой? DragonionS Общие вопросы Delphi 1 01.07.2007 21:49
Как запретить переход между диалоговыми окнами. dnkR Общие вопросы Delphi 1 18.01.2007 06:59