Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.015 c
2-1144846419
Dyakon_Frost
2006-04-12 16:53
2006.04.30
Проблема с MessageDlg!


2-1145097713
Antip
2006-04-15 14:41
2006.04.30
Как из способов будет правильным и быстрым?


15-1144692023
Sergey Masloff
2006-04-10 22:00
2006.04.30
Оказывается ихняя ADA это "наш" PL/SQL


4-1139473833
som
2006-02-09 11:30
2006.04.30
Добавление пользователя домена


2-1144814332
Officeman
2006-04-12 07:58
2006.04.30
"105.00" и "105,00" Как иcправить этот глюк?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский