سؤال

أنا أكتب لعبة جافا تحتاج إلى الماوس التفاعل.كنت تنوي استخدام MouseAdapter, ولكن لقد بحثت في بعض, و لا يبدو أن لديها أي وسيلة من تحديد موقع مؤشر الماوس دون انقر فوق أو العمل الذي يجري القيام به...ما يمكن أن يكون الطريقة الموصى بها من فعل هذا ؟

بعض الأسئلة:

  1. سوف الماوس "الموقع" الرجوع إلى موقع الماوس فيما يتعلق حدود مراقبة حدود اللعبة ، أو سيكون تمثيل الحركات النسبية سابقة الموقع ؟

  2. كيف يمكن للمرء أن تعطيل مؤشر الماوس في إطارات التطبيق ؟ (ie.أول شخص مطلق النار حيث حركات الماوس تدور اللاعبين عرض بدلا من تحريك المؤشر) هل هذا ممكن ؟

هل كانت مفيدة؟

المحلول

نظرة على MouseMotionListener.هذا سوف يسمح لك لتتبع حركات الماوس.وسوف تعطيك موقع الماوس داخل المكون الذي تعلق.ولكن إذا نظرتم SwingUtilities فئة هناك بعض الراحة أساليب تحويل النقاط إلى الشاشة أو مكونات أخرى أو جهاز العرض.

عن المؤشر, لديك الخيار لتعيين النقطية الخاصة بك على المؤشر, يمكنك البحث هنا.أو أكثر في الآونة الأخيرة حتى الإجابة, يمكنك البحث هنا.لذلك يمكن إخفاء المؤشر ، أو تعيينها إلى فارغة النقطية ثم اعتراض حركات الماوس و الأحداث للسيطرة على الرأي.

نصائح أخرى

البرنامج التعليمي على أحداث الماوس في:http://java.sun.com/docs/books/tutorial/uiswing/events/mouselistener.html

إذا كنت انظر هنا:http://java.sun.com/javase/7/docs/api/java/awt/event/MouseEvent.html

يمكنك الحصول على المطلق الموقع على الشاشة ، أو الإحداثيات النسبية إلى المكون.

إذا كان هناك حركة تغيير الاتجاه ثم سوف تحتاج إلى إزالة الماوس المستمع ، أو هل يمكن أن يكون مجرد بعض المنطق حيث معالج الحدث فقط الخروج ، لا تفعل شيئا.أعتقد أن هذا سيكون أفضل, وإلا عليك أن تتبع عند إضافة وإزالة المستمعين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top