ใน GUI ควรจัดการอินพุตเมื่อกดหรือปล่อยปุ่ม?


12

ในระบบเมนูสำหรับเกมของเรา (เลือกระดับตัวเลือก ฯลฯ ) ผู้เล่นกดปุ่มบน gamepad เพื่อไปยังหน้าจอถัดไป ฉันเข้ารหัสระบบเมนูเพื่อรอจนกว่าจะปล่อยปุ่มก่อนที่จะดำเนินการใด ๆ (เช่นการแสดงหน้าจอถัดไป) ข้อเสนอแนะ playtest ล่าสุดบางข้อเสนอแนะให้เราทำในทางตรงกันข้าม: ดำเนินการทันทีที่กดปุ่ม ฉันสงสัยว่าอะไรเป็นวิธีมาตรฐานในการจัดการและมันสร้างความแตกต่างได้หรือไม่?

คำตอบ:


32

ในเกมที่จะถูกควบคุมโดยแป้นที่ปัจจัยการผลิตการควบคุมโดยตรงเปลี่ยนโฟกัส GUI จากปุ่ม GUI หนึ่งไปยังอีกผู้ปุ่ม GUI ควรจะเปิดใช้งานเมื่อปุ่มควบคุมจะถูกกด

ในเกมที่ควบคุมด้วยเมาส์ (หรือถ้าใช้ gamepad เพื่อย้ายเคอร์เซอร์ของเมาส์เสมือนรอบหน้าจอ) ปุ่มบนหน้าจอควรจะเปิดใช้งานเมื่อปุ่มเมาส์ / ตัวควบคุมถูกปล่อยออกมาเหนือปุ่มเดียวกันกับที่มันเป็นกดแล้ว (หากกดเกิดขึ้นกับปุ่ม GUI หนึ่งปุ่มแล้วย้ายเมาส์และปล่อยผ่านปุ่ม GUI อื่นจะไม่เปิดใช้งานปุ่ม GUI)

เหตุผลก็คือว่าทักษะการควบคุมเมาส์ของผู้คนมีความผันแปรสูงและบ่อยครั้งที่ผู้คนมีปัญหาเล็กน้อยในการวางเคอร์เซอร์ตรงจุดที่พวกเขาต้องการหรือแม้แต่บอกอย่างแม่นยำว่าปุ่ม GUI ใดที่พวกเขากำลังโฉบอยู่ ทฤษฎีคือผู้คนสามารถกดปุ่มเมาส์ค้างไว้เพื่อให้การเน้นปุ่ม GUI และถ้าปุ่ม GUI นั้นไม่ใช่ปุ่มที่พวกเขาตั้งใจจะใช้พวกเขาสามารถเลื่อนเคอร์เซอร์ออกจากมันก่อนที่จะปล่อยปุ่มเมาส์ตามลำดับ เพื่อหลีกเลี่ยงการกด

แต่ถ้าเกมของคุณถูกควบคุมโดย gamepad คุณต้องดำเนินการอย่างแน่นอนเมื่อกดปุ่ม gamepad ไม่ใช่เมื่อปล่อย

แก้ไขห้าปีต่อมา:

ในช่วงเวลาตั้งแต่คำตอบนี้ถูกโพสต์มาตรฐานใหม่ได้เริ่มปรากฏขึ้นสำหรับการจัดการเคอร์เซอร์สไตล์เมาส์ซึ่งควบคุมโดย gamepads

ในคำตอบข้างต้นฉันแนะนำว่าสิ่งเหล่านี้ควรถูกนำไปใช้ในการทำงานเหมือนกับเคอร์เซอร์ซึ่งควบคุมโดยหนู ไฮไลต์บนเมาส์ลงเปิดใช้งานเมาส์ขึ้นหากเคอร์เซอร์ยังคงอยู่เหนือองค์ประกอบ GUI เดียวกัน

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

ประโยชน์ของระบบนี้คือช่วยให้ผู้ใช้ที่มีเคอร์เซอร์แบบเมาส์อยู่เหนือจุดที่ผิดเพื่อหลีกเลี่ยงการเปิดใช้งานองค์ประกอบนั้นโดยเพียงแค่ปล่อยปุ่มก่อน สไตล์เมาส์ "ขยับออกไปก่อนที่คุณจะปล่อย" เป็นธรรมชาติน้อยกว่าที่จะทำได้บนแป้นเกมกว่าด้วยเมาส์และวิธีการนี้ช่วยให้ผู้ใช้ gamepad สามารถยกเลิกการคลิกที่ไม่ต้องการได้ง่ายยิ่งขึ้น

เรายังเริ่มเห็นเกมไม่กี่เกมที่ทดลองใช้โมเดลการโต้ตอบกับเคอร์เซอร์นี้แม้ว่าเมื่อเคอร์เซอร์ถูกย้ายด้วยเมาส์จริง ไม่มีมนุษย์คนใดทำสิ่งนี้เป็นตัวอย่างหนึ่ง มันจะน่าสนใจที่จะดูว่าวิธีการจัดการกับการโต้ตอบของเคอร์เซอร์ของเมาส์จะกลายเป็นเรื่องปกติมากขึ้นและคาดว่าในอีกไม่กี่ปีข้างหน้า


10
+1 ควรดำเนินการกับการเปิดตัวของเมาส์ไม่ใช่การเลื่อนเมาส์ อย่างไรก็ตามเพื่อให้มีประสิทธิภาพสิ่งสำคัญคือองค์ประกอบ GUI เองจะเปลี่ยนสถานะภาพในเหตุการณ์การเลื่อนเมาส์
Kylotan

+1 สำหรับการกลับมาเพื่ออัปเดตคำถาม 5 ปีเพื่อให้มีความเกี่ยวข้อง
lozzajp

ทุกครั้งที่มีคนโหวตหรือแสดงความคิดเห็นเกี่ยวกับคำตอบเก่า ๆ ของฉันฉันอ่านใหม่เพื่อให้แน่ใจว่ามันยังทันสมัยอยู่เสมอ :)
Trevor Powell

1

ฉันจะดำเนินการทันทีที่กดแป้น

ตัวอย่างที่ดีที่สุดที่การกระทำเกิดขึ้นหลังจากการเปิดตัวกุญแจคือใน Starcraft: Broodwar เมื่อฉันจะกดปุ่มอย่างรวดเร็วฉันมักจะกดปุ่มถัดไปก่อนที่จะปล่อยปุ่มก่อนหน้าอย่างสมบูรณ์ซึ่งทำให้บางคำสั่งถูกละเว้น (1A คลิก, 2A คลิก, 3A คลิก - จะไม่สนใจ 2)

นี่คือการเปลี่ยนแปลงใน Warcraft III และเกมรู้สึกว่าฉันตอบสนองได้ดีขึ้นมากและฉันไม่เคยมีปัญหา 'กลุ่มควบคุมเหนียว' จาก Broodwar

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