Форум: "Игры";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
ВнизДвижение в GLScene Найти похожие ветки
← →
X-Disa © (2005-10-09 14:01) [0]Поставил GLScene,сравнил с DelphiX, и понял, что лучше второе.
Вопрос такой: есть GLSphere, и нужно, чтоб по ее поверхности двигался объект (управление кнопками), а камера двигалась за ним, тоже по поверхности. Подскажите плиз!
← →
!Trinix © (2005-10-09 17:25) [1]Это очень легко, делай так:
Создай DummyCube(DC), в него засунь объект и камеру. При нажатии клавиши двигай DC. А если хочешь двигать по сфере, то это тебе уже физика нужна, или я неккоректно понял вопрос?
← →
Fosgen (2005-10-09 21:13) [2]Ерунда задача.
Создаешь в центре сферы DummyCube, к нему потомком создаешь целевой объект. Позиция потомка - равна радиусу сферы.
По нажатию клавиш - вращаешь на требуемый угол DummyCube. Потомок сам будет по поверхности двигаться. Если надо, чтобы потомок сохранял положение к поверхности сферы - пользуешься либо нормалью этой самой поверхности, либо вычисляешь компенсирующий угол, к повороту DC. А вообще - при предложенном вариане - объект будет всегда скользить по поверхности сферы одной стороной.
Камера - потомком либо к целевому объекту (но он сам - ее цель), либо - к DummyCube (это уже смотри по особенностям задачи).
Всех делов - обрабатывать нажатие кнопок и вычислять угол, на который повернуть DC.
А delphiX, уж слишком примитивная вещь. Я конечно понимаю, разобраться с GLScene не каждый потянет... :) Но возможностей, гораздо больше.
← →
Кефир87 © (2005-10-09 21:18) [3]А вообще надо с этим вам всем завязывать. Все равно у API возможностей и гибкости куда больше 8)
← →
DeadMeat © (2005-10-10 00:40) [4]А вообще само сравнение весьма оригинально..
Я конечно понимаю, если сравнивались возможности ТОЛЬКО в 2Д.. но об этом ничего не сказано..
---
...Death Is Only The Begining...
← →
Fosgen (2005-10-10 09:34) [5]Никто не спорит, "чистый" OGL гораздо пластичнее, мощнее, производительнее. Но начинать я бы посоветовал с GLScene. DelphiX - скорее просто баловство, из общения с ним мало чего полезного вынести можно. А ГЛСцена позволяет понять основные принципы построения игры, хранения данных, организации тех или иных объектов, их свойств. Если еще копаться в исходниках - можно вообще много чего узнать. Например - применение класов, наследование и т.д. Так что на первых порах - это поучительно. А когда начинаешь писать что-нить серьезное, то постепенно утыкаешься в основные ограничения ГЛСцены - низкая производительность, универсальность за счет скорости, тогда начинаешь постепенно писать что-то свое. То один модуль заменяешь на свой, то другой. В результате - получаешь движок, заточенный и оптимизированный под конкретный проект.
И дальше уже ползуешься своими наработками. Вроде все довольны?
← →
!Trinix © (2005-10-10 11:33) [6]Смешно даже!
Ведь GLScene - надстройка над OGL, а не какой-то супер сам-по-себе движок. Там даже есть спец. графа для письма в OGL.
← →
Кефир87 © (2005-10-10 20:38) [7]В глаза это ГЛСцен не видел. Сразу с ОГЛ АПИ начал... Сложно конечно... Ну вот уже полгода изучаю... Не оч. далеко ушел 8)
← →
X-Disa © (2005-10-11 11:05) [8]Вообще-то общая идея игры такая: Есть космическое пространство (сфера), в центре находится звезда.
Вокруг летают планеты, астероиды, корабли, и остатки всего этого. Но корабли летают не свободно, а по поверхностям уровней (типа вложенных невидимых сфер), и могут подниматся и опускатся на нужный уровень.
Уже сделал маленький свободно летающий кораблик :)
Вопрос еще такой, как лучше организовать звездное небо? SkyBox даже с самой простенькой текстуркой жутко тормозит :(
← →
DeadMeat © (2005-10-11 11:52) [9]
> Вопрос еще такой, как лучше организовать звездное небо?
> SkyBox даже с самой простенькой текстуркой жутко тормозит
> :(
На сферу натяни и сферу присобачь к камере.
Или тоже самое с кубом. На темном небе не будет видно ни стыков ни полосочек.. Если правильно сделать.
← →
X-Disa © (2005-10-11 12:04) [10]Есть еще один вопрос, вот когда камера снаружи сферы и смотрит на нее - все ок, но когда камеравнутри - сферы как бы и нет. Как отобразить ее внутреннюю поверхность?
← →
DeadMeat © (2005-10-11 12:44) [11]Отключи куллинг и инвертируй нормали (или одно из двух... я щас не помню)
← →
X-Disa © (2005-10-11 13:10) [12]А как это сделать? :(
← →
X-Disa © (2005-10-11 13:11) [13]А, уже нашел - Normal Direction - ndInside
← →
X-Disa © (2005-10-11 13:18) [14]Тестура - 50x50, а FPS - 7 ! Как ускорить?
← →
DeadMeat © (2005-10-11 13:40) [15]Использовать не 50х50 а что нить, что является степенью двойки.
32х32
64х64
и т.п.
Но одна такая текстура в одном месте не может так сильно тормозить...
← →
X-Disa © (2005-10-11 16:06) [16]Еще один вопрос, ламерский наверно. Для чего нужен DummyCube?
← →
DeadMeat © (2005-10-11 16:28) [17]Это контейнер.
В него удобно что-либо помещать для работы. А потом обращаться к его чилдренам. Сам он не видим (пока не выставить свойство VisibleAtRunTime) и не рендериться. Это просто коробка, куда можно складывать другие объекты.
Повернул его - повернул и всех, кто внутри.
← →
Da Stranger © (2005-10-11 17:14) [18]
> Еще один вопрос, ламерский наверно. Для чего нужен DummyCube?
Ответ на него есть даже в FAQ по GLScene. А так DeadMeat всё правильно рассписал. Добавить могу лишь то, что если объекты создаются динамически, то как контейнер можно использовать GLBaseSceneObject: он родитель многих классов в GLScene.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.01 c