গেম কন্ট্রোলার লাইব্রেরি ব্যবহার করে আপনার গেমে মাউস ডিভাইস সমর্থন যোগ করতে নিম্নলিখিত ফাংশনগুলি ব্যবহার করুন। আমরা এখানে প্রথাগত ইঁদুর, সেইসাথে ট্র্যাকপ্যাড বা ট্র্যাকবল বর্ণনা করতে মাউস ডিভাইস শব্দটি ব্যবহার করি।
একটি মাউস স্ট্যাটাস কলব্যাক যোগ করুন
গেম কন্ট্রোলার লাইব্রেরি একটি মাউস স্ট্যাটাস কলব্যাক ব্যবহার করে যখন একটি মাউস সংযুক্ত বা সংযোগ বিচ্ছিন্ন হয় তখন একটি গেমকে অবহিত করতে। এটি একটি সময়ে শুধুমাত্র একটি মাউস স্ট্যাটাস কলব্যাক সমর্থন করে।
- একটি মাউস স্ট্যাটাস কলব্যাক নিবন্ধন করতে বা একটি নতুন কলব্যাক ফাংশন দিয়ে পূর্বে নিবন্ধিত কলব্যাক প্রতিস্থাপন করতে,
Paddleboat_setMouseStatusCallback
ফাংশনটি কল করুন। - বর্তমানে নিবন্ধিত কলব্যাক অপসারণ করতে,
statusCallback
প্যারামিটারেNULL
বাnullptr
পাস করুন। -
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
প্যারামিটারে Paddleboat_setMouseStatusCallback
কলব্যাকের শেষ কলে নির্দিষ্ট করা userData
পয়েন্টার রয়েছে। userData
NULL বা 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 | বিটফিল্ড, বিট 0 থেকে শুরু হওয়া প্রতিটি বিট সেট করা থাকলে একটি বোতাম ডাউন স্টেট নির্দেশ করে। |
mouseX mouseY | পিক্সেল স্থানাঙ্কে মাউসের অবস্থান। অবস্থান স্থানাঙ্কগুলির স্ক্রীনের প্রস্থ এবং উচ্চতা থেকে 0.0 এর পরিসর রয়েছে৷ |
mouseScrollDeltaH mouseScrollDeltaV | ক্রমবর্ধমান মাউস স্ক্রোল হুইল ইভেন্টের একটি গণনা : Paddleboat_getMouseData তে আগের কল থেকে। এই মানগুলি সুনির্দিষ্ট হওয়ার গ্যারান্টি দেওয়া হয় না, শুধুমাত্র একটি নির্দিষ্ট দিকে স্ক্রোল চাকার কার্যকলাপের একটি ইঙ্গিত দিতে। বেশিরভাগ ইঁদুরের একটি স্ক্রোল চাকা থাকে, যা mouseScrollDeltaV -তে রিপোর্ট করা হয়। যদি একটি মাউসের একটি সাইড স্ক্রোল হুইল থাকে, তাহলে তা mouseScrollDeltaH এ রিপোর্ট করা হয়। Paddleboat_getMouseData এ কল করার পরে এই মানগুলি অভ্যন্তরীণভাবে 0 তে রিসেট করা হয়েছে। |
গেম কন্ট্রোলার লাইব্রেরি 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
স্থানাঙ্ক রিপোর্ট করার নিশ্চয়তা দেয়। ভার্চুয়াল মাউস ডিভাইসগুলি একটি একক (বাম) মাউস বোতাম থেকে প্রেসের রিপোর্ট করতে পারে, তবে এটি নিশ্চিত নয়।