|
3D-программирование Вопросы, касающиеся программирования 3D мира |
24.01.2008, 18:17
|
#1
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Постаянная скорость управления мышью
Здравствуйте!
Подскажите как сделать ограничитель скорости управления мышью.
Управление делал так:
TSpeed#=0.10
mXSp=MouseXSpeed()
mYSp=MouseYSpeed()
TurnEntity User,mYSp*TSpeed#,0,0
TurnEntity Usersphere,0,-mXSp*TSpeed#,0
Тут скорость поворота зависит от TSpeed.
Но это не совсем то, что мне надо. Ведь если я буду дёргать мышь быстрее
то и поворачиваться объект будет быстрее.
Мне надо как бы не ограничитель, а постоянную скорость поворота но, что бы
поворачивалось в тех направлениях куда я поворачиваю мышь.
Тобиш влево, вправо, вверх, вниз.
Какие у вас мысли по этому поводу?
|
(Offline)
|
|
24.01.2008, 18:25
|
#2
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Постаянная скорость управления мышью
TSpeed#=0.10
mXSp=MouseXSpeed()
mYSp=MouseYSpeed()
TurnEntity User,sgn(mYSp)*TSpeed#,0,0
TurnEntity Usersphere,0,-sgn(mXSp)*TSpeed#,0
пс. возможно не sgn а sign или что то типа етого.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
24.01.2008, 18:36
|
#3
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Постаянная скорость управления мышью
Вай спасибо помог!
|
(Offline)
|
|
24.01.2008, 18:39
|
#4
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Постаянная скорость управления мышью
кстати, замечу что способ недостаточно хорош. направлений поворота будет тоько 8.
правельнее было бы рассчитывать вектор направления мыша от центра и нормаировать его (естественно если его модуль отличен от нуля).
и поворачивать камеру в соотвествии с этим (уже отнормированным) вектором (естественно только если его длинна больше нуля)
|
(Offline)
|
|
24.01.2008, 18:44
|
#5
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Постаянная скорость управления мышью
да точно хз как делать. я тут наконецто решился взяться за дипломник,
ибо несколько месяцев осталось до защиты.
за 10 минут накатал пока управление юзером.
буду использывать в проекте все свои наработки блица
должно получиться чёто типа закоса под механойдов с плохой
графикой и кривой физикой.
а также вейпоинты будут нужны вот тока не знаю делать мне их через попу
или по примеру дипломата. по дипломату кода меньше но делать сложнее.
|
(Offline)
|
|
24.01.2008, 18:49
|
#6
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Постаянная скорость управления мышью
что-то типа етого:
Graphics 640,480,16,2
SetBuffer BackBuffer()
While Not KeyDown(1)
Cls
mx=MouseXSpeed()
my=MouseYSpeed()
d#=Dist(mx,my,0,0)
If d>0
dx=mx/d*100
dy=my/d*100
Line 320,240,320+dx,240+dy
EndIf
Flip
Wend
заместо Line 320,240,320+dx,240+dy , тебе надо будет писать вращение камеры. 100 - это модуль вектора.
|
(Offline)
|
|
24.01.2008, 18:57
|
#7
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Ответ: Постаянная скорость управления мышью
Blitzerg а что сложного с вэйпоинтами? Создаешь тип WayPoint, а в типе врага создаешь список или массив всех точек движения. И потом двигаешься по ним, от одной к другой, через поворот.
|
(Offline)
|
|
24.01.2008, 19:03
|
#8
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Постаянная скорость управления мышью
Диманче тебе может не сложно, а я не прогер и этого не делал никогда.
Я могу делать только то что уже делал.
Холи, я не понял что это делать должно?
|
(Offline)
|
|
24.01.2008, 19:03
|
#9
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Постаянная скорость управления мышью
конечно делай "по дипломату"
в противном случае можеш остаться без диплома/
|
(Offline)
|
|
24.01.2008, 19:04
|
#10
|
Терабайт исходников
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
|
Ответ: Постаянная скорость управления мышью
да я не на программиста учусь, проходили по паскалю только хелоу ворлд.
так что даж моя черезжоповая система выше того чему нас учили.
но делать всё равно надо по дипломату.
|
(Offline)
|
|
24.01.2008, 21:55
|
#11
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Ответ: Постаянная скорость управления мышью
По сабжу, можно просто ограничивать скорость поворота.
mXSp=max(MouseXSpeed(), MAX_X_SPEED)
mYSp=max(MouseYSpeed(), MAX_Y_SPEED)
Нормализовать дорого. Возможно, быстрее будет найти угол поворота вектора направления и использовать его для просчета dx и dy.
|
(Offline)
|
|
24.01.2008, 22:17
|
#12
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Постаянная скорость управления мышью
alcoSHoLiK, смотри пост 6, там фейковая нормализация.
может и дорого, но один раз за игровой цикл можно и потерпеть
|
(Offline)
|
|
25.01.2008, 00:03
|
#13
|
Дэвелопер
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений (для 110 пользователей)
|
Ответ: Постаянная скорость управления мышью
Какая ж она фейковая? При нахождении расстояния корень считается. Там у тебя обычная нормализация.
|
(Offline)
|
|
25.01.2008, 18:40
|
#14
|
scientist.alien
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений (для 2,593 пользователей)
|
Ответ: Постаянная скорость управления мышью
Алко, мне кажется, или же в твоем коде скорость поворота - от Max_?_Speed до куда рука юзера дернется? (;
Нужно юзать не max(a,b), а min(a,b) (; Тогда заработает ограничение на скорость поворота.
Кстати, я как-то недавно проводил масштабные исследования скорости движения мышки... Так, для справки и помощи в настройке:
0-10 - это примерная скорость обычного "прогулочного" обзора в контре. Это когда ты только-только выходишь с базы в контре.
10-25 - это когда ты краем глаза засек снайпера, и хочешь быстро и точно на него навестись, зная, что он тебя не видит, но скоро может это сделать.
25-60 - ситуация аналогична выбежавшему из-за угла с маскировкой кровососу, который готов тебя убить на последних подступах к счастью. Т.е. уже не совсем осознанное движение, очень часто - от страха.
60-130 - cybersportsmen only. Сохранять на такой скорости осмысление картинки не-ре-аль-но без длительных и упорных тренировок. А уж точное позиционирование с такой скоростью - и вовсе предел мечтаний многих корейцев.
Больше 130 скорость мне возюканьем мшой по столу развить не удалось, как ни старался.
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab. We LOVE you. We MADE you.
|
(Offline)
|
|
25.01.2008, 18:42
|
#15
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: Постаянная скорость управления мышью
Больше 130 скорость мне возюканьем мшой по столу развить не удалось, как ни старался.
|
мышка нагревалась и плавилась
кстати да, надо юзать min
кстати да, нормальизация самая обычная, далеко не фейковая.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:24.
|