Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Плавное изменение скорости | страница 2
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 2 из 5
На страницу: Пред.  1, 2, 3, 4, 5  След. | Все страницы
Поиск в этой теме:
Канал X-Tension/X-BTF: «Плавное изменение скорости»
Al1
 100 EGP


Репутация: 10
Сообщения: 177
Откуда: St.-Pb.
Зарегистрирован: 24.12.2002
Diff :
Цитата:
Лучше скажите возможно ли перевести регулятор скорости на скрольное колесо мыша? если это возможно то это просто было бы супер!!!

Имхо, прыжки будут те же. Думаю, спасет только покупка джойстика.

Ну энто неа - на мышином колесе, при скролинге во всяком случае проставляется на сколько позиций надо изменить, а при нажатии на клаве - сколько раз успела прога считать нажатие клавиши - отсюда и скачки Расстроен
    Добавлено: 16:52 24-03-2004   
Strange®
 1078 EGP


Репутация: 225
Сообщения: 3005
Откуда: Киев
Зарегистрирован: 26.07.2002
Al1 :
Лучше скажите возможно ли перевести регулятор скорости на скрольное колесо мыша? если это возможно то это просто было бы супер!!!

Меня полтора года назад посетила эта мысль. Я таки написал программу, которая вешала хук на соответствующее событие и передавала активному приложению вместо прокрутки соответствующие клавиши. В блокноте все работало на ура! Но как оказалось XT работает с клавиатурой весьма своеобразными методами (и ввод там небуферизованный, так что с буфером клавиатуры - идея тухлая, проверено). В общем, забросил я эту идею...
_________________
Жизнь прекрасна! Главное - правильно подобрать антидепрессанты :)
    Добавлено: 16:59 24-03-2004   
Remint
 385 EGP


Репутация: 84
Сообщения: 1785

Зарегистрирован: 12.05.2003
Цитата:
Но как оказалось XT работает с клавиатурой весьма своеобразными методами (и ввод там небуферизованный, так что с буфером клавиатуры - идея тухлая, проверено). В общем, забросил я эту идею...

Своебразность заключается в "тормознутом" движке, в котором
не пропорционально выставлены приорететы рендеринга и
обработки нажатия клавишь. Возможно с потоками намудрили,
тогда не мудрено, что так и не исправили вплоть до 2.1.
Тогда и понятно почему из буфера сразу все выталкивается,
но тормозит (синхронизация блин кривая).
_________________
Да пребудет с вами сила...
    Добавлено: 17:24 24-03-2004   
Strange®
 1078 EGP


Репутация: 225
Сообщения: 3005
Откуда: Киев
Зарегистрирован: 26.07.2002
Remint :
Тогда и понятно почему из буфера сразу все выталкивается, но тормозит (синхронизация блин кривая).

Ты не совсем правильно понял. Из буфера вообще ничего не выталкивается. ИМХО читается напрямую из портов. Из-за этого медленные машины тормозят (теряют нажатые клавиши), а быстрые очень быстро реагируют (до кода, опрашивающего клавиатуру, управление передается тем чаще, чем быстрее машина). Соответственно, играет роль не количество нажатий на клавишу, а продолжительность удержания клавиши в нажатом состоянии.
_________________
Жизнь прекрасна! Главное - правильно подобрать антидепрессанты :)
    Добавлено: 19:16 24-03-2004   
YogSagot
 1175 EGP


Рейтинг канала: 4(60)
Репутация: 275
Сообщения: 2796
Откуда: Daugavpils, Latvija
Зарегистрирован: 17.08.2003
Хочешь сказать, что они прерывание перехватывают? ИМХО не лучшая практика под виндой....
    Добавлено: 09:29 25-03-2004   
Рыб
 1242 EGP


Рейтинг канала: 3(36)
Репутация: 340
Сообщения: 7461

Зарегистрирован: 05.06.2001
У DirectX есть отдельный интерфейс работы с клавиатурой, так вот если сравнивать скорость и тормознутость этого интерфейса с вариантом обработки стандартных виндовых сообщений клавиатуры (с точки зрения использования в играх), то этот интерфейс выигрывает абсолютно, а вот как он внутри организован я не знаю, возможно и напрямую на низком уровне работает.
    Добавлено: 15:26 25-03-2004   
Grebomet
 1460 EGP


Модератор
Рейтинг канала: 3(36)
Репутация: 261
Сообщения: 4765
Откуда: Питербурх
Зарегистрирован: 06.01.2003
Не думаю, что дело в интерфейсе ДырЫкса... Скорее обработка событий (или что там в нем используется для получения прикладной программой нажатий кноповок) в игре реализована кривовасто...
_________________
Классическая ошибка, которую совершают проектировщики абсолютно надежных систем, – недооценка изобретательности клинических идиотов.
    Добавлено: 16:45 25-03-2004   
Рыб
 1242 EGP


Рейтинг канала: 3(36)
Репутация: 340
Сообщения: 7461

Зарегистрирован: 05.06.2001
XT почти наверняка использует именно DX`овый интерфейс работы с клавиатурой, потому как он наиболее удобен и быстр для игр, тут скорее вопрос в том, что в самом XT алгоритм повышения скорости по кнопке как то криво реализован.
    Добавлено: 17:34 25-03-2004   
Strange®
 1078 EGP


Репутация: 225
Сообщения: 3005
Откуда: Киев
Зарегистрирован: 26.07.2002
YogSagot :
Хочешь сказать, что они прерывание перехватывают? ИМХО не лучшая практика под виндой....

Но тем не менее поведение игр серии Х (и X2 в том числе) очень похоже на такой метод обработки клавиатуры. Быстрый набор не прокатывает - просто не успевают обрабатываться нажатия на клавиши. Следовательно, имеет место цикл опроса состояния клавиш (нажата-не нажата). И цикл этот на тормознутых компьютерах работает с недостаточной скоростью. В винде при обработке событий такого быть не может, следовательно X-игры не используют виндовый буфер клавиатуры. Вывод напрашивается вполне однозначный (и грустный)
_________________
Жизнь прекрасна! Главное - правильно подобрать антидепрессанты :)
    Добавлено: 11:18 26-03-2004   
YogSagot
 1175 EGP


Рейтинг канала: 4(60)
Репутация: 275
Сообщения: 2796
Откуда: Daugavpils, Latvija
Зарегистрирован: 17.08.2003
Да ХТ с клавой вообще криво работает. Про сам игровой процесс нияего плохого сказать не могу (кроме разве что все того-же изменения скорости). Но вот переименовывая станции и корабли а так-же при навигации по менюшке на станции творится хренатень полная. То нажимаешь клавтшу, а она не нажимается. То наоборот. Нажал раз, выводятся две, порой три. Один раз пять одинаковых символов вывел.

Грустно одним словом...
    Добавлено: 11:54 26-03-2004   
Paranid Parazite
 546 EGP


Рейтинг канала: 1(3)
Репутация: 131
Сообщения: 1676

Зарегистрирован: 04.10.2003
2 Diff: У меня есть джой со скроллом, шоп он здох Ругаюсь, недоволен! Разозлен . Я-то правую руку на джое дерзу, левую-на клаве, и по иногда,при нажатии на табулятор сначала скорость растёт, а потом становится такой как на джое. А вот это уже голимо!
_________________
I load lead inside my engine—lead and alcohol © Vacuum
    Добавлено: 10:20 27-03-2004   
Mik
 





Цитата:
Меня полтора года назад посетила эта мысль. Я таки написал программу, которая вешала хук на соответствующее событие и передавала активному приложению вместо прокрутки соответствующие клавиши. В блокноте все работало на ура! Но как оказалось XT работает с клавиатурой весьма своеобразными методами (и ввод там небуферизованный, так что с буфером клавиатуры - идея тухлая, проверено). В общем, забросил я эту идею...
_________________

XT использует вызовы IDirectInputDevice::GetDeviceState для клавы (00439D04 call near dword ptr [ecx+24]) и мыши (0043A2B5 call near dword ptr [ecx+24]).
У XT свой буфер клавы на 4 нажатия - 0052FAD0
Windows собщения получает,но не использует.
Для "перевести регулятор скорости на скрольное колесо мыша" нужно в хуке при получении WM_MOUSEWHEEL
вызывать WriteProcessMemory(свой буфер клавы XT).

Для "Плавное изменение скорости" нужно в exe по адресам 07dc28 и 07dc88 заменить 02 на 03..05 (чем больше тем Плавнее).

*Все адреса даны для бездискового exe для версии 2.1а c этого сайта:
ссылка ,
и должны работать на любой XT версии 2.1а
    Добавлено: 18:12 06-07-2004   
Charon
 140 EGP


Репутация: 23
Сообщения: 430
Откуда: Киев, Харьков
Зарегистрирован: 19.04.2004
Mik, а в оригинальном неломанном .exe такой фокус сработает ? Или там адреса другие править нужно ?
_________________
Little by little, one travels far.
J. R. R. Tolkien
    Добавлено: 18:58 06-07-2004   
Gor
 220 EGP


Репутация: 45
Сообщения: 680
Откуда: Московский филиал клана [OEG]
Зарегистрирован: 23.06.2004
У меня атлон хп 1700+. Скоростуха конечно прыгает преизрядно. НО! Есть фича.
Когда атакуешь корабль, в момент стрелбы у мня вроде получалось изменять скорость плавнее.
Типа буффер клавиатуры забивается еще и нажатиями кнопки огонь
_________________
Аргон ксенону не товарищ
    Добавлено: 08:33 07-07-2004   
Рыб
 1242 EGP


Рейтинг канала: 3(36)
Репутация: 340
Сообщения: 7461

Зарегистрирован: 05.06.2001
Не, это не из-за буфера клавиатуры получается, это от того, что когда идёт прорисовка анимации с рожей пирата, то даже на P4 2.6 замечаются тормоза, что и позволяет более плавно менять скорость.
    Добавлено: 09:05 07-07-2004   
Mik
 





2 Charon: Такой фокус сработает на любом .exe, если совпадают следующие байты:

0047DC20: 8B D6 8B CA F7 EA C1 FA-02 8B C6 C1 F8 1F 2B D0
0047DC30: 03 FA 89 7B 14 3B FE 7E-03 89 73 14 8B 1C 24 8B
и
0047DC80: 8B D6 8B CA F7 EA C1 FA-02 C1 FE 1F 2B D6 2B FA
0047DC90: 89 7B 14 81 FF 30 F8 FF-FF 7D 07 C7 43 14 30 F8
    Добавлено: 10:05 07-07-2004   
Al1
 100 EGP


Репутация: 10
Сообщения: 177
Откуда: St.-Pb.
Зарегистрирован: 24.12.2002
Mik :

XT использует вызовы IDirectInputDevice::GetDeviceState для клавы (00439D04 call near dword ptr [ecx+24]) и мыши (0043A2B5 call near dword ptr [ecx+24]).
У XT свой буфер клавы на 4 нажатия - 0052FAD0
Windows собщения получает,но не использует.
Для "перевести регулятор скорости на скрольное колесо мыша" нужно в хуке при получении WM_MOUSEWHEEL
вызывать WriteProcessMemory(свой буфер клавы XT).

Такой фокус сработает на любом .exe, если совпадают следующие байты:

0047DC20: 8B D6 8B CA F7 EA C1 FA-02 8B C6 C1 F8 1F 2B D0
0047DC30: 03 FA 89 7B 14 3B FE 7E-03 89 73 14 8B 1C 24 8B
и
0047DC80: 8B D6 8B CA F7 EA C1 FA-02 C1 FE 1F 2B D6 2B FA
0047DC90: 89 7B 14 81 FF 30 F8 FF-FF 7D 07 C7 43 14 30 F8


Mik можно отсюда поподробнее типа инструхцию чё и как, где менять? плз
    Добавлено: 11:58 07-07-2004   
Gor
 220 EGP


Репутация: 45
Сообщения: 680
Откуда: Московский филиал клана [OEG]
Зарегистрирован: 23.06.2004
Цитата:
2 Diff: У меня есть джой со скроллом, шоп он здох . Я-то правую руку на джое дерзу, левую-на клаве, и по иногда,при нажатии на табулятор сначала скорость растёт, а потом становится такой как на джое. А вот это уже голимо!


У меня при использовании геймпада такая же хрень.
При вклучении форсажа скорость нарастает, но потом опять снижается до уровня, который установлен кнопками AZ (при чем и при юзании TAB и при использовании геймпада)
Да еще есть дурь такая, как только дернул регулятор скорости на геймпаде скорость сбрасывается на уровень чуть ниже стыковочного Вау!
_________________
Аргон ксенону не товарищ
    Добавлено: 12:23 07-07-2004   
Mik
 





Sorry, указал не те адреса, вот правильные:
0007DC20: 8B D6 8B CA F7 EA C1 FA-02 8B C6 C1 F8 1F 2B D0
0007DC30: 03 FA 89 7B 14 3B FE 7E-03 89 73 14 8B 1C 24 8B
и
0007DC80: 8B D6 8B CA F7 EA C1 FA-02 C1 FE 1F 2B D6 2B FA
0007DC90: 89 7B 14 81 FF 30 F8 FF-FF 7D 07 C7 43 14 30 F8
a вообще, если эти байты не совпадают, то можно поискать их в другом месте и там заменить 02 на 03..05 (для других версий XT).

2Al1:
Менять надо в hex редакторе (например Hiew или WinHex.. или старых NC или DN):
1)открываем .exe в hex редакторе
2)переходим по адресу 0007DC20
3)убеждаемся, что байты совпадают
5)если эти байты не совпадают, то выполняем поиск по этим байтам
4)меняем 02 на 03..05 и сохраняем
5)аналогично и для 0007DC80.
    Добавлено: 14:23 07-07-2004   
Argonaut
 260 EGP


Рейтинг канала: 1(9)
Репутация: 43
Сообщения: 185
Откуда: Челябинск
Зарегистрирован: 27.04.2004
А я тут как-то джойстик юзал (Logitech Joystick Extreme 3D Pro) с ручкой газа. После турбо-разгона если эту ручку хоть чуть потрогать, скорость снижается до уровня, установленном на джойстике. Это конечно сперва напрягало, но потом приспособился: рукоятку на максимум, параллельно - ТАВ.
И вперед!!! Улыбка

P.S. А джойстик прикольный, кнопок дофига и рукоятка вокруг своей оси вертится - можно забыть про кнопки "Q" и "W".
    Добавлено: 14:38 07-07-2004   
Канал X-Tension/X-BTF: «Плавное изменение скорости»
На страницу: Пред.  1, 2, 3, 4, 5  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Перепилоты буянят... (Слава)

  » Плавное изменение скорости | страница 2
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18