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

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

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

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

Ответ
 
Опции темы
Старый 12.12.2012, 13:34   #1
yokonang
AnyKey`щик
 
Регистрация: 18.10.2012
Сообщений: 2
Написано 0 полезных сообщений
(для 0 пользователей)
Правый стик геймпада, свободное вращение камеры

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

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

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

Может быть кто-то делал?
(Offline)
 
Ответить с цитированием
Старый 12.12.2012, 19:34   #2
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Правый стик геймпада, свободное вращение камеры

может на геймпаде надо цифровой режим врубить
(Offline)
 
Ответить с цитированием
Старый 12.12.2012, 20:02   #3
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,024
Написано 2,313 полезных сообщений
(для 5,350 пользователей)
Ответ: Правый стик геймпада, свободное вращение камеры

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

Ещё не надо встраивать в одну строку через "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 Посмотреть сообщение
С JoyPitch() и JoyYaw() возвращаются статичные "-180".
А у твоего джойстика-геймпада таких кнопок нет (скорее всего). У меня тоже самое, вроде они для руля.

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



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

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

Последний раз редактировалось Arton, 12.12.2012 в 23:43.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Arton за это полезное сообщение:
tirarex (06.11.2013), yokonang (13.12.2012)
Ответ


Опции темы

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

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


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


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