ใช้ฟังก์ชันต่อไปนี้เพื่อเพิ่มการรองรับอุปกรณ์เมาส์ในเกมของคุณโดยใช้ คลังเกมคอนโทรลเลอร์ เราใช้คำว่าอุปกรณ์เมาส์เพื่ออธิบาย เมาส์แบบดั้งเดิม ตลอดจนแทร็กแพดหรือแทร็กบอล
เพิ่มการเรียกกลับสถานะเมาส์
ไลบรารีเกมคอนโทรลเลอร์ใช้การเรียกกลับสถานะเมาส์เพื่อแจ้งเกมเมื่อ เชื่อมต่อหรือตัดการเชื่อมต่อเมาส์แล้ว รองรับการเรียกกลับสถานะเมาส์เพียงครั้งเดียวเท่านั้น ต่อครั้ง
- หากต้องการลงทะเบียน Callback สถานะเมาส์หรือแทนที่รายการที่บันทึกไว้ก่อนหน้านี้
Callback ด้วยฟังก์ชัน Callback ใหม่เรียก
Paddleboat_setMouseStatusCallback
- หากต้องการนำ Callback ที่ลงทะเบียนไว้ในปัจจุบันออก ให้ส่ง
NULL
หรือnullptr
ใน พารามิเตอร์statusCallback
- พารามิเตอร์
userData
คือตัวชี้ที่ไม่บังคับไปยังข้อมูลที่ผู้ใช้กำหนด ระบบจะส่งพารามิเตอร์userData
ไปยังฟังก์ชัน Callback ช่วงเวลานี้ ตัวชี้จะถูกเก็บไว้เป็นการภายใน จนกว่าจะมีการเปลี่ยนแปลงโดยการเรียกอื่นเป็นPaddleboat_setMouseStatusCallback
void Paddleboat_setMouseStatusCallback(Paddleboat_MouseStatusCallback
statusCallback, void *userData)
ลายเซ็นของฟังก์ชันของฟังก์ชัน Callback ของสถานะเมาส์คือ
typedef void (*Paddleboat_MouseStatusCallback)(const Paddleboat_MouseStatus
mouseStatus, void *userData)
พารามิเตอร์ enum mouseStatus
มีค่าที่เป็นไปได้ 3 ค่าดังนี้
PADDLEBOAT_MOUSE_NONE
: ไม่มีอุปกรณ์เมาส์เชื่อมต่ออยู่PADDLEBOAT_MOUSE_CONTROLLER_EMULATED
: กำลังจำลองตัวควบคุมที่เชื่อมต่ออยู่ หนูPADDLEBOAT_MOUSE_PHYSICAL
: อุปกรณ์เมาส์จริงอย่างน้อย 1 เครื่อง เชื่อมต่อ แล้ว (อุปกรณ์ดังกล่าวรวมถึงเมาส์ ทัชแพด แทร็กบอล หรือ อุปกรณ์ที่คล้ายกัน)
พารามิเตอร์ 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
|
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
อุปกรณ์เมาส์เสมือนอาจรายงานการกดจาก
ปุ่มเมาส์ (ซ้าย) ปุ่มเดียว แต่ไม่มีการรับประกันใดๆ