XNA จับการคลิกเมาส์เมื่อเกมไม่มีโฟกัส


13

หากฉันแท็บ alt และทำสิ่งต่าง ๆ นอกหน้าต่างเกมเกมยังคงจับการคลิกเมาส์ (ทั้งคลิกซ้ายและขวา)

เกมดังกล่าวไม่ได้ "กิน" การคลิกเนื่องจากจะถูกส่งไปยังแอปพลิเคชันที่มีโฟกัส

แต่มันค่อนข้างน่ารำคาญที่จะได้ยินเสียงปืนทุกครั้งที่คุณคลิกในอินเทอร์เน็ตเบราว์เซอร์ของคุณ ...

นอกจากนี้ปัญหายังเกิดขึ้นแม้ว่าเกมจะถูกตั้งเป็นเต็มหน้าจอ

คำตอบ:


15

ทางออกที่ดีที่สุดที่ฉันได้พบคือการหยุดการตอบสนองต่ออินพุต (และอาจหยุดเกมของคุณชั่วคราว) ถ้ามันไม่ทำงาน

คุณสามารถตรวจสอบGame.IsActiveหรือขอActivatedและDeactivatedกิจกรรม

มีข้อเสียเปรียบเล็กน้อยหนึ่งข้อ - ฉันจะพิจารณาข้อบกพร่องนี้ในเฟรมเวิร์ก - เกมจะเริ่มต้นในสถานะใช้งานเสมอแม้ว่าเกมจะไม่ได้ใช้งานจริงเมื่อมันเริ่มทำงาน (ตัวอย่างเช่น: คุณคลิกไปที่หน้าต่างอื่นระหว่างการเริ่มเกมและเกมของคุณเริ่มต้นจริง)

GetForegroundWindowคุณสามารถทำงานรอบนี้โดยการตรวจสอบสิ่งที่หน้าต่างที่ใช้งานคือเมื่อเกมของคุณเริ่มต้นอาจจะใช้ หรือคุณอาจไม่ต้องกังวลเกี่ยวกับมัน - บางครั้งมันเกิดขึ้นในฐานะนักพัฒนา แต่ฉันคิดว่ามันจะไม่ส่งผลกระทบต่อผู้ใช้ปลายทางจริงๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.