Виртуальный рычаг
Всем Привет. Прочитав половину форума похожих идей и предложений не увидел,поэтому решил создать новую тему для обсуждения
Появилось небольшое предложение к Разработчикам о реализации так называемого "виртуального рычага коробки передач".Скорее в 3d инструкторе эта опция не будет лишней, да и обладателям недорогих рулей это небольшое дополнение придаст ещё большей реалистичности.
Сейчас постараюсь более подробно объяснить по какому принципу работает. Представим,что мышь это рукоятка коробки передач. Водя ею по столу в соответствии с расположением передач, мы можем их включать в любой последовательности или переключаться на нейтраль.
P.s А подсмотрел я эту идею в довольно старой игре "cross racing champion 2005"
Для наглядности есть небольшое видео.
http://www.youtube.com/watch?v=b1DCEBcMEPw
спасибо за внимание
Появилось небольшое предложение к Разработчикам о реализации так называемого "виртуального рычага коробки передач".Скорее в 3d инструкторе эта опция не будет лишней, да и обладателям недорогих рулей это небольшое дополнение придаст ещё большей реалистичности.
Сейчас постараюсь более подробно объяснить по какому принципу работает. Представим,что мышь это рукоятка коробки передач. Водя ею по столу в соответствии с расположением передач, мы можем их включать в любой последовательности или переключаться на нейтраль.
P.s А подсмотрел я эту идею в довольно старой игре "cross racing champion 2005"
Для наглядности есть небольшое видео.
http://www.youtube.com/watch?v=b1DCEBcMEPw
спасибо за внимание
-
- Мега Эксперт
- Сообщения:1336
- Зарегистрирован:Пн янв 03, 2011 10:09 am
- Откуда:Пойковский
-
- Эксперт
- Сообщения:345
- Зарегистрирован:Вс янв 03, 2010 1:17 pm
- Откуда:Винница
- Контактная информация:
у меня джой с фидбэком, вынимать ничего не пришлосьGizzy писал(а):Тут был не скрипт, а его обсуждение...
Там использовали джойстик, но пожалели выламывать пружину, с ней он всё-время возвращался в центральное положение
а скрипт где-то встречал именно под мышь, хотя может и не на этом форуме
в принципе написать скрипт думаю не проблема, там справка подробнейшая...
Re: Виртуальный рычаг
Нет, можно попробовать через GlovePIE! Инструктора сейчас нет, далеко от компьютера, скажите пожалуйста какие цифровые клавиши на клавиатуре, за какую передачу отвечают?
Re: Виртуальный рычаг
"1" - нейтраль, "2"-"7" - первая-шестая передачи, задний ход, по-моему, "-".
Re: Виртуальный рычаг
Вот попробуйте, еще раз повторю что 3ДИ сейчас нет, опробывать не могу.
Заганять естевственно в GlovePIE.
[spoiler Скрипт]// Скрипт переключения МКПП в 3Д-Инструктор 2.х мышью.
if mouse.MiddleButton = 1 THEN begin
mouse.CursorPosX = (screen.Width) / 2;
mouse.CursorPosY = screen.Height /2;
Key.One = 1;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
if Mouse.CursorPosX < (screen.Width) /3 THEN begin
if mouse.CursorPosY <(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 1;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX < (screen.Width) /3 THEN begin
if mouse.CursorPosY >(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 1;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width) / 3 && Mouse.CursorPosX < (screen.Width - (screen.Width / 3))THEN begin
if mouse.CursorPosY <(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 1;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width) / 3 && Mouse.CursorPosX < (screen.Width - (screen.Width / 3))THEN begin
if mouse.CursorPosY >(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 1;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width - (screen.Width / 3)) THEN begin
if mouse.CursorPosY <(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 1;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width - (screen.Width / 3)) THEN begin
if mouse.CursorPosY >(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 1;
endif
endif[/spoiler]
Заганять естевственно в GlovePIE.
[spoiler Скрипт]// Скрипт переключения МКПП в 3Д-Инструктор 2.х мышью.
if mouse.MiddleButton = 1 THEN begin
mouse.CursorPosX = (screen.Width) / 2;
mouse.CursorPosY = screen.Height /2;
Key.One = 1;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
if Mouse.CursorPosX < (screen.Width) /3 THEN begin
if mouse.CursorPosY <(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 1;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX < (screen.Width) /3 THEN begin
if mouse.CursorPosY >(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 1;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width) / 3 && Mouse.CursorPosX < (screen.Width - (screen.Width / 3))THEN begin
if mouse.CursorPosY <(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 1;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width) / 3 && Mouse.CursorPosX < (screen.Width - (screen.Width / 3))THEN begin
if mouse.CursorPosY >(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 1;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width - (screen.Width / 3)) THEN begin
if mouse.CursorPosY <(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 1;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width - (screen.Width / 3)) THEN begin
if mouse.CursorPosY >(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 1;
endif
endif[/spoiler]
Последний раз редактировалось Ashot Чт авг 25, 2011 8:25 pm, всего редактировалось 2 раза.
Re: Виртуальный рычаг
GlovePIE ругается на
у скрипта для третьей и четвертой передач (кнопки 4 и 5). Из-за этого не втыкается первая и вторая, насколько я понял. Из-за этого толком непонятно, работает нормально или нет. Пятая вроде втыкается.
Задний ход "0" (ноль, а не О), извиняюсь, что не то сказал.
Код: Выделить всё
if Mouse.CursorPosX > (screen.Width) / 3 < (screen.Width - (screen.Width / 3)) THEN begin
Задний ход "0" (ноль, а не О), извиняюсь, что не то сказал.
Re: Виртуальный рычаг
Исправил.
Re: Виртуальный рычаг
Вот теперь работают усе передачи Осталось с нейтралкой решить - она влючена только тогда, когда нажата средняя кнопка. На светофорах неудобно будет. Может как-то поудобнее стоит придумать?
[spoiler Оффтоп]И, не постесняюсь спросить, можно ли из колесика мыши сделать ось? Если можно, то подскажи как. Не хочу с ppjoy заморачиваться, из-за него глюки с нормальным джойстиком.[/spoiler]В общем и целом, спасибо)
)))
[spoiler Оффтоп]И, не постесняюсь спросить, можно ли из колесика мыши сделать ось? Если можно, то подскажи как. Не хочу с ppjoy заморачиваться, из-за него глюки с нормальным джойстиком.[/spoiler]В общем и целом, спасибо)
)))
Re: Виртуальный рычаг
Можно все, только надо подумать как!
А вам для чего, если не секрет?
Вот еще одна версия скрипта, вроде теперь не надо держать ЦК мышки.
[spoiler Скрипт]// Скрипт переключения МКПП в 3Д-Инструктор 2.х мышью.
if mouse.MiddleButton = 1 THEN begin
mouse.CursorPosX = (screen.Width) / 2;
mouse.CursorPosY = screen.Height /2;
Key.One = 1;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
if Mouse.CursorPosX < (screen.Width) /3 THEN begin
if mouse.CursorPosY <(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 1;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX < (screen.Width) /3 THEN begin
if mouse.CursorPosY >(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 1;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width) / 3 && Mouse.CursorPosX < (screen.Width - (screen.Width / 3))THEN begin
if mouse.CursorPosY <(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 1;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width) / 3 && Mouse.CursorPosX < (screen.Width - (screen.Width / 3))THEN begin
if mouse.CursorPosY >(screen.Width) / 2 + 4 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 1;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width - (screen.Width / 3)) THEN begin
if mouse.CursorPosY <(screen.Width) / 2 - 4 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 1;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width - (screen.Width / 3)) THEN begin
if mouse.CursorPosY >(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 1;
endif
endif[/spoiler]
А вам для чего, если не секрет?
Вот еще одна версия скрипта, вроде теперь не надо держать ЦК мышки.
[spoiler Скрипт]// Скрипт переключения МКПП в 3Д-Инструктор 2.х мышью.
if mouse.MiddleButton = 1 THEN begin
mouse.CursorPosX = (screen.Width) / 2;
mouse.CursorPosY = screen.Height /2;
Key.One = 1;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
if Mouse.CursorPosX < (screen.Width) /3 THEN begin
if mouse.CursorPosY <(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 1;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX < (screen.Width) /3 THEN begin
if mouse.CursorPosY >(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 1;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width) / 3 && Mouse.CursorPosX < (screen.Width - (screen.Width / 3))THEN begin
if mouse.CursorPosY <(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 1;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width) / 3 && Mouse.CursorPosX < (screen.Width - (screen.Width / 3))THEN begin
if mouse.CursorPosY >(screen.Width) / 2 + 4 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 1;
Key.Six = 0;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width - (screen.Width / 3)) THEN begin
if mouse.CursorPosY <(screen.Width) / 2 - 4 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 1;
Key.Zero = 0;
endif
endif
if Mouse.CursorPosX > (screen.Width - (screen.Width / 3)) THEN begin
if mouse.CursorPosY >(screen.Width) / 2 THEN begin
Key.One = 0;
Key.Two = 0;
Key.Three = 0;
Key.Four = 0;
Key.Five = 0;
Key.Six = 0;
Key.Zero = 1;
endif
endif[/spoiler]
-
- Мега Эксперт
- Сообщения:1336
- Зарегистрирован:Пн янв 03, 2011 10:09 am
- Откуда:Пойковский
Re: Виртуальный рычаг
ну такие творения я думаю нужно в моды поместить)
Re: Виртуальный рычаг
Попробовал новый скрипт - ситуация всё та же. После отпускания колесика, втыкается 3 передача (4 кнопка), причем не важно, какая была выбрана раньше...Этот баг не виден, если сцепу успеть отпустить до того, как передача воткнется. Но, вдруг надо просто на выжатом сцеплении прокатиться с нейтралью, или сцепление не успеть отпустить, и тут западло такое))
Из колесика хочу сделать ось, на эту ось повесить тормоз. На руле 2 педали. На левую повесил сцепление, на правую, естественно, газ. Тормоз пришлось повесить на левый лепесток руля, при этом, чтобы плавно тормозить, его приходиться часто тыкать (над*ачивать ), бесит.
Насчет в моды - я тоже соглашусь.
Ко мне на "Вы" не надо)
Из колесика хочу сделать ось, на эту ось повесить тормоз. На руле 2 педали. На левую повесил сцепление, на правую, естественно, газ. Тормоз пришлось повесить на левый лепесток руля, при этом, чтобы плавно тормозить, его приходиться часто тыкать (над*ачивать ), бесит.
Насчет в моды - я тоже соглашусь.
Ко мне на "Вы" не надо)