Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 11.03.2012, 05:28   #1
L-ee-X
Разработчик
 
Аватар для L-ee-X
 
Регистрация: 06.06.2011
Адрес: Ирк. обл.
Сообщений: 541
Написано 133 полезных сообщений
(для 220 пользователей)
Движение вертОлета!

Привет Всем! Появился вопрос по реализации движение вертолета!
Кто нибудь пытался создать механизм управления вертолетом?
Есть начальные наброски кода, сделал поворот, взлет и посадку, но теперь трудности заключаются в то, что надо сделать движение верталета вперед!
К примеру я взлетаю вверх на клавишу W после жму стрелку вперед у меня вертолет меняет угол и должен лететь вперед! Как бы в голове то это все укладывается, а вот как реализовать это кодом не могу понять! Может кто , что подскажет по теме! За ранее Благодарствую!

Последний раз редактировалось L-ee-X, 11.03.2012 в 12:00.
(Offline)
 
Ответить с цитированием
Старый 11.03.2012, 06:01   #2
Arles
ПроЭктировщик
 
Аватар для Arles
 
Регистрация: 24.07.2009
Сообщений: 142
Написано 52 полезных сообщений
(для 103 пользователей)
Ответ: Движение верталета!

самое простое - тянуть вертолет вверх через "MoveEntity", а при движении вперед/назад, менять угол наклона вертолета, либо же просто добавлять значение Z в вышеуказанную ф-ию(в этом случае вертолет будет двигаться без крена по оси X)
__________________
(Offline)
 
Ответить с цитированием
Старый 11.03.2012, 20:15   #3
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Движение верталета!

У вертолёта сила тяги перпендикулярно оси вращения лопастей.
всякие повороты (влево-вправо, нос вверх-вних, наклон вправо-влево) создаются за счёт хвостового винта и того, что в верхнем пропеллере лопасти немного меняют угол атаки в зависимости от положения. Т.е., по-уму, эти силы просто меняют ориентацию вертолёта в пространстве, а главным источником движения является тяга верхнего пропеллера.
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием
Старый 11.03.2012, 21:23   #4
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Движение верталета!

Сообщение от Igor Посмотреть сообщение
У вертолёта сила тяги перпендикулярно оси вращения лопастей.
всякие повороты (влево-вправо, нос вверх-вних, наклон вправо-влево) создаются за счёт хвостового винта и того, что в верхнем пропеллере лопасти немного меняют угол атаки в зависимости от положения. Т.е., по-уму, эти силы просто меняют ориентацию вертолёта в пространстве, а главным источником движения является тяга верхнего пропеллера.
добавлю (уточню?):
хвостовой винт компенсирует вращение фюзеляжа (вызванное несущим винтом) в классической схеме (а ведь есть ещё соосная, поперечная, продольная). Да - можно добиться изменения рысканья (yaw) при помощи хвостового винта, но изменение тангажа ("нос вверх-вниз", pitch) или крена ("наклон влево-вправо", roll) реализуется при помощи автомата перекоса.
Здесь я просто ЧУДОВИЩНО кратко изложил основные моменты. Если всё упростить и не заморачиваться - см.:
1) Д. Конгер "ФИЗИКА ДЛЯ РАЗРАБОТЧИКОВ КОМПЬЮТЕРНЫХ ИГР" (но, емнип, там про самолёты только).
2) Институт транспорта и связи "ОСНОВЫ АЭРОДИНАМИКИ И ДИНАМИКИ ПОЛЕТА". Рига, 2010
0) Википедия
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
HolyDel (11.03.2012), L-ee-X (12.03.2012), Nex (12.03.2012)
Старый 11.03.2012, 21:34   #5
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Движение верталета!

Давно когда то делать пытался вертолёт классической схемы (с использованием PhysX Wrapper). Ну и соответственно пытался сделать как можно реалистичнее его перемещение в пространстве.
Поднимал вверх увеличением силы действующей на фюзеляж снизу(имитация подъёмной силы), перемещения вперёд/назад/влево/вправо добивался наклоном фюзеляжа и небольшим уменьшением силы подъёма (что бы не поднимался вверх когда надо лететь на одной высоте), ну разворот влево/вправо проще некуда (или намеренный разворот фюзеляжа по оси Y, или действовать силой на хвостовую часть, что есть ненужный гемор).
Но ничего особо приличного не получилось из за моей тогдашней лени. Летать то вертушка летала, но очень криво и неказисто.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Старый 12.03.2012, 14:44   #6
4yBa4Ok
Знающий
 
Аватар для 4yBa4Ok
 
Регистрация: 01.04.2011
Адрес: Екатеринбург
Сообщений: 232
Написано 48 полезных сообщений
(для 82 пользователей)
Ответ: Движение вертОлета!

А у меня джоинтом крепился ротор к фюзеляжу, на ротор дествовала подъемная сила которая за собой тащила верт.
__________________





(Offline)
 
Ответить с цитированием
Старый 09.04.2012, 09:39   #7
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Движение вертОлета!

Да не заморачивайся с физиксом.
Сделай проще!
Создай пивот, к нему прикрепи модель вертолёта.
heliPivot=createPivot()
heliMesh=LoadMesh("",heliPivot)
И когда ты будешь нажимать вперед - делать
--------------------------------------------------------
S=S+A*time
If S>SMax then S=SMax ;это чтоб он у тебя не разгонялся быстрей максимальной
MoveEntity heliPivot,0,0,S*time ;я всегда пишу движение в зависимости от пройденного времени (синхронизация)
RotateEntity heliMesh,S*k,0,0
---------------------------------------------------------
где S - скорость
SMax - максимальная скорость
A - скорость
time - время кадра делённая на 1000 (frame/1000.0)
K - коэффициент наклона верталета (не обязательно, но поможет урегулировать нужный угол)

Вот и всё
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 11:55.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com