Привет всем! Решил добавить в свою демку мышь через DirectInput. Всё прошло гладко, но вот с координатами я так и не разобрался. Знаю там есть абсолютные и относительные. С относительными вроде понял. А вот с абсолютными нет. Где там начало координат (начальный пункт отсчета). Думал что в левом верхнем углу, но пришел к выводу что нет. Подскажите мне пожалуйста.
начальные координаты в центре созданого окна и после каждого получения данных мыш снова возвращается в начальные координаты (правда не фактически)
Chaos_Optima
Это ты мне как бы пытался объяснить про относительную систему координат.
А абсолютная?
WerWoolf
Абсолютные считаются от момента инициализации и не привязаны к окнам.
Wraith
Поясни. Что-то я слобовато въехал.
Мой вопрос наверное не правильно поняли. Поясню. Где находится точка отсчета коодинат в DirectInput?
WerWoolf
> Мой вопрос наверное не правильно поняли. Поясню. Где находится точка отсчета коодинат в DirectInput?
Мы прекрасно поняли твой вопрос. Отвечаю: точка отсчета координат находится в [0 0], но в совершенно другом пространстве, никак не связанным с окном или экраном. В этом пространстве существуют только две вещи: начало координат и точка с текущим положением мыши относительно нчала координат. Соответственно, когда ты инициализируешь мышь с абсолютными координатами, директ сам себе говорит: "тут будет центр вселенной" и устанавливает текущее положние в [0 0].
Wraith
Значит, когда я инициализирую окно, и сразу же инициализирую DirectInput (при инициализации окна курсор нахидиться в центре экрана) то координата [0,0] в DirectInput тоже будет находиться в центре экрана. Так?
>DirectInput тоже будет находиться в центре экрана. Так?
Нет. В третий раз: координаты DirectInput не связаны с координатами окон и экранов. Вообще никак не соотносятся. Никак-никак.
Wraith
ТОгда можешь пояснить. Я создаю меню. У меня кнопка меню находится в отределенном пространстве. Работаю со спрайтами значит в 2D пространствею. При наведении курсора кнока дожна менять (нутам размер или цвет). Как мне определить наведен ли курсор на кнопку. Я не представляю тогда как это сделать. Может ты знаешь?
Control->update();
Y+=Control->M_state.lY;
X+=Control->M_state.lX;
начальные XY задаёш сам вот и всё
Chaos_Optima
Логично. Есть еще предложения?
Chaos_Optima
Ну если я задам начальные координаты [0,0]. То как мне определить на каких координатах находиться моя кнопка?
придумай сваю систему координат в ней и орентируйся
WerWoolf
>. При наведении курсора кнока дожна менять (нутам размер или цвет). Как мне определить наведен ли курсор на кнопку. Я не представляю тогда как это сделать. Может ты знаешь?
Ну как обычно: проецируешь мышиные координаты из мышиного пространства в пространство экрана/окна/еще чего-то и уже в них смотришь, навелось на кнопку или нет.
Тема в архиве.