forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Правый стик геймпада, свободное вращение камеры (http://forum.boolean.name/showthread.php?t=17615)

yokonang 12.12.2012 13:34

Правый стик геймпада, свободное вращение камеры
 
При опросе геймпада с правого стика получаю активные результаты лишь с JoyRoll() -180 до 180.

С JoyPitch() и JoyYaw() возвращаются статичные "-180".

Хочу сделать управление камерой "от третьего лица". Но стик отдает повороты только по горизонтали (а на втором геймпаде по вертикали), т.е. только в одной плоскости.

Может быть кто-то делал?

tirarex 12.12.2012 19:34

Ответ: Правый стик геймпада, свободное вращение камеры
 
может на геймпаде надо цифровой режим врубить

Arton 12.12.2012 20:02

Ответ: Правый стик геймпада, свободное вращение камеры
 
Как я не крутился, похоже на блице работает только аналоговый режим. Короче для блица только джойстик.
Вот код для управления камерой, левый стик ходьба, правый камера. Но надо ещё настроить плавность камеры, а можно и не настраивать :)

Ещё не надо встраивать в одну строку через "And" считывание мыши и джойстика, мыш потом тупить (у меня были тормоза). Только два отдельных кода/функции!

Код:

Function UpdateControlsJoystick(ent,cam,spid#)

        mxspd#=JoyZDir()*1.5 ;=1.5
        myspd#=JoyRoll()/120 ;=1.5
       
        MoveMouse GraphicsWidth()/2,GraphicsHeight()/2       

        campitch#=EntityPitch(cam)+myspd#
       
        If campitch#<-89 Then campitch#=-89
        If campitch#>89 Then campitch#=89

        RotateEntity ent,0,EntityYaw(cam)-mxspd#,0
        RotateEntity cam,campitch#,EntityYaw(cam)-mxspd#,0

        If JoyYDir()=-1 Then MoveEntity ent,0,0,spid# ;вперёд
        If JoyYDir()=1 Then MoveEntity ent,0,0,-spid# ;назад
        If JoyXDir()=-1 Then MoveEntity ent,-spid#,0,0 ;влево
        If JoyXDir()=1 Then MoveEntity ent,spid#,0,0 ;вправо

End Function

Цитата:

Сообщение от yokonang (Сообщение 246383)
С JoyPitch() и JoyYaw() возвращаются статичные "-180".

А у твоего джойстика-геймпада таких кнопок нет (скорее всего). У меня тоже самое, вроде они для руля.

Мой геймпад "Oklick gp-310m", только вот кнопки чёрные :)



В блице, в цифровом режиме правый стик работает как кнопки 1-4, слева тоже совмещается.

P. S. Если вдруг не понял! То я делал только от первого лица, хотя код по идее почти такой же.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot