Перехват нажатия клавиш по элементу, Определения положения мыши
-
21 апреля 2011 г. 18:47
Есть ли в xna стандартная функция, которая перехватывает нажатия мышей по определенному элементу, например спрайту, или только определять по месту положения мыши?
Да и как определить положение мыши относительно приложения xna а не относительно экрана, если приложения не полноэкранное ?
Все ответы
-
23 апреля 2011 г. 10:25
Наверняка у интересующего Вас элемента есть обработчик нажатия по нему кнопкой мыши. Повесьте на него нужный обработчик и будете делать то что Вам надо при нажатии.Есть ли в xna стандартная функция, которая перехватывает нажатия мышей по определенному элементу, например спрайту, или только определять по месту положения мыши?
[My blog] [My E-mail] -
23 апреля 2011 г. 10:33
Да и как определить положение мыши относительно приложения xna а не относительно экрана, если приложения не полноэкранное ?
Вам поможет событие у окна MouseMove
Вот пример обработчика события, в котором определяется координаты мыши внутри окна:
private void panel1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { int mouseX = e.X; int mouseY = e.Y; label1.Text = "X = " + mouseX + "; " + "Y = " + mouseY; }
[My blog] [My E-mail] -
23 апреля 2011 г. 15:20
Вам поможет событие у окна MouseMove
Вот пример обработчика события, в котором определяется координаты мыши внутри окна:
private void panel1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { int mouseX = e.X; int mouseY = e.Y; label1.Text = "X = " + mouseX + "; " + "Y = " + mouseY; }
[My blog] [My E-mail]
Xna отличаться от System.Windows.Forms и способы характерные для него не подойдут !!! -
23 апреля 2011 г. 15:24
-
23 апреля 2011 г. 15:36
Я так и делаю но приложение не полноэкранное а метод описанный выше выдает координаты относительно экрана а не приложения ( даже если щелкнем не по приложению все равно получим положения мыши во время щелчка) мне необходимо пересчитать это относительно экрана приложения, загвоздка в том в том что я не знаю как определить положение приложения относительно экрана, и определить был ли щелчок по нему.Попробуйте так:
MouseState mouseStateCurrent = Mouse.GetState();
[My blog] [My E-mail] -
23 апреля 2011 г. 15:52
Хм...
Согласно этому (How to: Get the Current Mouse Position (Windows)) все должно работать.
Для определения координат окна попробуйте следующее или еще так
[My blog] [My E-mail]- Помечено в качестве ответа NIKkakNIK 23 апреля 2011 г. 20:00
-
23 апреля 2011 г. 16:29
Для определения координат окна попробуйте следующее или еще так
[My blog] [My E-mail]
Да там можно определить координаты xna.
А как определить был ли щелчок по приложению xna или по окну которое находиться над ним, поскольку координаты у них одинаковые ?
-
23 апреля 2011 г. 18:44
А как определить был ли щелчок по приложению xna или по окну которое находиться над ним, поскольку координаты у них одинаковые ?
Не понимаю...У Вас в приложении несколько окон (приложение xna всеравно расположено внутри окна, только своего)? И надо определить внутри какого окна был произведен щелчек мышкой? Так?
[My blog] [My E-mail] -
23 апреля 2011 г. 20:00я использую xna без добавления его в другую форму а даже наоборот в него добавляю форму wpf (решил поэкспериментировавать) , и я уже нашел как это сделать спасибо за помощь.
-
23 апреля 2011 г. 20:01
Не за что! =)
> и я уже нашел как это сделать
Поделитесь решением. Думаю, может пригодиться.
[My blog] [My E-mail] -
24 апреля 2011 г. 20:10
подводя итоги
this.Window.ClientBounds.Location - определения положения
this.IsActive - определяет активность окна

