माउस डिवाइस से जुड़ी सहायता जोड़ें

इसका उपयोग करके अपने गेम में माउस डिवाइस का समर्थन जोड़ने के लिए निम्न फ़ंक्शन का उपयोग करें गेम कंट्रोलर लाइब्रेरी. हम यहां माउस डिवाइस शब्द का इस्तेमाल, इनके बारे में बताने के लिए करते हैं पारंपरिक माउस, साथ ही ट्रैकपैड या ट्रैकबॉल भी.

माउस के स्टेटस का कॉलबैक जोड़ना

गेम कंट्रोलर लाइब्रेरी, माउस स्टेटस कॉलबैक का इस्तेमाल करके, गेम को तब सूचना देती है, जब माउस कनेक्ट या डिसकनेक्ट हो गया है. यह सिर्फ़ एक माउस स्टेटस कॉलबैक के साथ काम करता है एक समय में.

  • माउस स्टेटस कॉलबैक को रजिस्टर करने या पहले से रजिस्टर किसी भी कॉलबैक को बदलने के लिए एक नए कॉलबैक फ़ंक्शन के साथ कॉलबैक करके, 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)

mouseStatus enum पैरामीटर में तीन संभावित वैल्यू हैं:

  • 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 सबसे हाल के माउस इनपुट इवेंट का टाइमस्टैंप. इसके बाद से, टाइमस्टैंप की वैल्यू माइक्रोसेकंड में है. क्लॉक epoch का इस्तेमाल करें.
buttonsDown बिटफ़ील्ड, हर बिट, बिट 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_MOUSE_CONTROLLER_EMULATED के Paddleboat_MouseStatus से पता चलता है कि एक असली माउस डिवाइस मौजूद नहीं है और गेम कंट्रोलर लाइब्रेरी जो कनेक्ट किए गए कंट्रोलर का इस्तेमाल करके वर्चुअल माउस को सिम्युलेट करता है. सबसे कम कनेक्टेड PADDLEBOAT_CONTROLLER_FLAG_VIRTUAL_MOUSE फ़्लैग सेट वाला कंट्रोलर इंडेक्स है का इस्तेमाल वर्चुअल माउस के रूप में किया जाता है. वर्चुअल माउस डिवाइस सिर्फ़ रिपोर्ट करेंगे mouseX और mouseY कोऑर्डिनेट. वर्चुअल माउस डिवाइस, एकल (बायां) माउस बटन है, लेकिन इसकी कोई गारंटी नहीं है.