استخدِم الوظائف التالية لإتاحة استخدام أجهزة الماوس في لعبتك باستخدام وحدة تحكُّم الألعاب. نستخدم مصطلح أجهزة الماوس هنا لوصف الفئران التقليدية، بالإضافة إلى لوحات التتبع أو كرات التتبع.
إضافة استدعاء حالة الماوس
تستخدم مكتبة وحدة التحكم في الألعاب استدعاء حالة الماوس لإرسال إشعار إلى لعبة عند الماوس متصل أو غير متصل. يتوافق مع معاودة الاتصال بحالة الماوس واحدة فقط في كل مرة.
- لتسجيل استدعاء حالة الماوس أو استبدال أي استدعاء حالة الماوس
مع دالة رد اتصال جديدة، استدعِ
Paddleboat_setMouseStatusCallback
. - لإزالة أيّ معاودة اتصال مسجّلة حاليًا، عليك تمرير
NULL
أوnullptr
في مَعلمةstatusCallback
. - المَعلمة
userData
هي مؤشر اختياري للبيانات التي يحدّدها المستخدم. تشير رسالة الأشكال البيانية سيتم تمرير مَعلمةuserData
إلى دالة رد الاتصال. هذا النمط يتم الاحتفاظ بالمؤشر داخليًا إلى أن يتم تغييره بواسطة استدعاء آخرPaddleboat_setMouseStatusCallback
void Paddleboat_setMouseStatusCallback(Paddleboat_MouseStatusCallback
statusCallback, void *userData)
توقيع الدالة لدالة استدعاء حالة الماوس هو:
typedef void (*Paddleboat_MouseStatusCallback)(const Paddleboat_MouseStatus
mouseStatus, void *userData)
تحتوي معلَمة enum mouseStatus
على ثلاث قيم محتملة:
PADDLEBOAT_MOUSE_NONE
: ما مِن جهاز ماوس متصل حاليًا.PADDLEBOAT_MOUSE_CONTROLLER_EMULATED
: جارٍ محاكاة وحدة تحكُّم متصلة ماوس.PADDLEBOAT_MOUSE_PHYSICAL
: جهاز ماوس فعلي واحد أو أكثر متصلين. (تتضمن هذه الأجهزة الماوس أو لوحة اللمس أو كرة التعقّب أو غير ذلك أجهزة مماثلة).
تحتوي المعلمة userData
على مؤشر userData
المحدد في آخر
مكالمة إلى Paddleboat_setMouseStatusCallback
. قد تكون الدالة userData
فارغة أو
nullptr
لا تحاكي جميع وحدات التحكم الماوس. يجوز لوحدات التحكم أن تحاكي ماوس باستخدام العصي التناظرية أو بلوحة اللمس المدمجة.
لا تقدم مكتبة "وحدة التحكّم في الألعاب" تقارير إلا عن البيانات الواردة من جهاز ماوس فردي. تحظى أجهزة الماوس المادية بالأولوية على أجهزة الماوس الافتراضية المستخدَمة في وحدة التحكّم. إذا اتصال الماوس الفعلي، إلا أنه يستولي على أي أجهزة افتراضية نشطة سابقًا ماوس وحدة التحكم.
قراءة بيانات الماوس
يمكنك طلب الوظيفة Paddleboat_getMouseStatus
للاطّلاع على حالة جهاز الماوس.
Paddleboat_MouseStatus Paddleboat_getMouseStatus()
استخدام Paddleboat_getMouseData
للحصول على بيانات الماوس الحالية. تُرجع هذه الدالة
PADDLEBOAT_NO_ERROR
إذا تمت قراءة البيانات بنجاح، وبخلاف ذلك
رمز الخطأ المناسب.
bool Paddleboat_getMouseData(Paddleboat_Mouse_Data *mouseData)
تحتوي بنية Paddleboat_Mouse_Data
على معلومات عن:
- الطابع الزمني لآخر حدث لإدخال الماوس
- موضع المؤشر الحالي
- حالة أزرار الماوس
- حالة عجلات الماوس
struct Paddleboat_Mouse_Data {
uint64_t timestamp;
uint32_t buttonsDown;
int32_t mouseScrollDeltaH;
int32_t mouseScrollDeltaV;
float mouseX;
float mouseY;
}
عضو في الهيكل | الوصف |
---|---|
timestamp
|
الطابع الزمني لأحدث حدث إدخال للماوس وتبلغ قيمة الطابع الزمني بالميكرو ثانية منذ ذلك الحين. حقبة الساعة. |
buttonsDown
|
Bitfield، تبدأ كل وحدة بت من بت 0 تشير إلى حالة لأسفل للزر إذا تم تعيينها. |
mouseX mouseY
|
يشير ذلك المصطلح إلى موضع الماوس في إحداثيات البكسل.
تتراوح إحداثيات الموضع من 0.0 إلى
عرض الشاشة وارتفاعها. |
mouseScrollDeltaH mouseScrollDeltaV
|
عدد أحداث عجلة تمرير الماوس التراكمية :
منذ المكالمة السابقة
Paddleboat_getMouseData هذه القيم ليست
مضمونًا للدقة، فقط لإعطاء
إشارة لنشاط عجلة التمرير في
اتجاه معين. لدى معظم الفئران واحدة
عجلة التمرير، والتي يتم الإبلاغ عنها في
mouseScrollDeltaV إذا كان للماوس جانب
عجلة التمرير، يتم الإبلاغ عنها في
mouseScrollDeltaH تتم إعادة تعيين هذه القيم إلى
0 داخليًا بعد إجراء مكالمة
Paddleboat_getMouseData |
تحدد مكتبة وحدة التحكم في الألعاب ثوابت قناع البت لأزرار الماوس في
ملف عنوان واجهة paddleboat.h
:
enum Paddleboat_Mouse_Buttons {
PADDLEBOAT_MOUSE_BUTTON_LEFT = (1U << 0),
PADDLEBOAT_MOUSE_BUTTON_RIGHT = (1U << 1),
PADDLEBOAT_MOUSE_BUTTON_MIDDLE = (1U << 2),
PADDLEBOAT_MOUSE_BUTTON_BACK = (1U << 3),
PADDLEBOAT_MOUSE_BUTTON_FORWARD = (1U << 4),
PADDLEBOAT_MOUSE_BUTTON_6 = (1U << 5),
PADDLEBOAT_MOUSE_BUTTON_7 = (1U << 6),
PADDLEBOAT_MOUSE_BUTTON_8 = (1U << 7)
};
أجهزة الماوس المادية مقابل أجهزة الماوس الافتراضية
يشير Paddleboat_MouseStatus
من PADDLEBOAT_MOUSE_CONTROLLER_EMULATED
إلى
عدم وجود جهاز ماوس فعلي ومكتبة ذراع التحكم في الألعاب
وهو محاكاة ماوس افتراضي باستخدام وحدة تحكم متصلة. أدنى مستوى متصل
فهرس وحدة التحكم مع مجموعة العلامات PADDLEBOAT_CONTROLLER_FLAG_VIRTUAL_MOUSE
هو
يستخدم كماوس افتراضي. يمكن فقط ضمان إعداد تقارير عن أجهزة الماوس الافتراضية
إحداثيات mouseX
وmouseY
قد تبلغ أجهزة الماوس الافتراضية عن الضغطات من
زر ماوس واحد (أيسر)، ولكن هذا ليس مضمونًا.