-
Как инвентировать координаты мышки(win APi, opengl) У меня курсор мыши по X двигается нормально а по Y неправильно.
WM_MOUSEMOVE: begin
FGE.Inp.Y := HIWORD( lParam );
FGE.Inp.X := LOWORD( lParam );
end;
-
Ось X в программировании 2D графики, как правило, направлена вправо. А вот ось Y может быть направлена как вверх, так и вниз, в зависимости от волевого решения авторов API.
Тебе всего-лишь нужно выяснить: 1) в какую сторону направлена ось Y, координаты курсора по которой ты получил? (судя по всему, направлена вниз) 2) в какую сторону направлена ось Y, по которой ты указываешь координаты где рисовать свой курсор? (раз не совпадает, то видимо вверх)
Путем не сложных математичыеских вычислений, примерно за 5й класс школы, мы полчим формулу: NewY := ScreenHeight - Y;
Впрочем, есть еще ньюанс с тем, что спрайт курсора имеет некоторую высоту, а координаты какой из точек спрайта (левой верхней, правой верхней?) ты указываешь при отрисовке науке не известно. Так что это остается тебе как домашнее задание.
|