الشبكة العربية لمطوري الألعاب

محترف مشرف عبد اللطيف حاجي علي مشاركة 1

السلام عليكم،

هل هناك طريقة للحصول على الانزياح النسبي للماوس في الـ .NET ؟ أعني شي كــ: "الماوس تحركت 5 بيكسلات على اليمين و 20 إلى فوق"

طبعاً لا يمكنني استخدام OnMouseMove لانها متعلقة بالـ cursor وليس بالماوس (في الجقيقة يجب أن يكون اسمها OnCursorMove)... أعني لو أن المؤشر كان في أقصى الشاشة على اليمين فأنني لن استطيع كشف أي حركة للـ "ماوس" على اليمين

أحاول أن استخدم هذه الطريقة لجعل الماوس تتحكم برأس اللاعب في كاميرا FPS عادية

فكرت باستخدام الـ DirectInput أو الـ Raw Input (WM_INPUT( لكنني كنت اطمع بحل أجمل من داخل الـ .NET بدون الاستعانة لمكتبات خارجية

شكراً

عبد اللطيف حاجي علي
مبرمج
In|Framez

خبير مدير وسام البهنسي مشاركة 2

لا يوجد هكذا وظيفة في مكتبات NET. (الإصدار 2) على حسب علمي... ستضطر لكتابة هكذا وظيفة بنفسك باستخدام APIs ذات مستوى خفيض للتعامل مع مدخلات الماوس مباشرة بدلاً من التعامل مع تفسيرات النظام لهذه المدخلات. يمكنك استخدام Managed DirectX 1.1 لتحقيق هذه العملية باستخدام DirectInput في بيئة NET. دون الحاجة لكتابة كود unsafe. أو يمكنك كتابة wrapper على الـ RawInput API أيضاً...
بعبارة أخرى... نعم... ستحتاج لاستخدام وحدة خارجية...

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

خبير  أحمد عبد الغني مشاركة 3

أؤيد كلام وسام

اللهم انصر أهلنا في فلسطين وآجرنا أن نكون عوناً لهم