ฉันรู้ว่ามันเป็นเรื่องง่ายที่จะสร้างปุ่มที่เน้นเมื่อคุณเลื่อนเมาส์ไปที่พวกเขา แต่เมื่อพูดถึงเมนูย่อยฉันรู้สึกแย่ ใครมีเคล็ดลับเกี่ยวกับวิธีที่ดีที่สุดในการมีเมนูหลักพร้อมเมนูย่อย? (เช่น Singleplayer -> โหลดบันทึก -> บันทึก 1-5? -> เริ่มเกมเป็นต้น)
ฉันรู้ว่ามันเป็นเรื่องง่ายที่จะสร้างปุ่มที่เน้นเมื่อคุณเลื่อนเมาส์ไปที่พวกเขา แต่เมื่อพูดถึงเมนูย่อยฉันรู้สึกแย่ ใครมีเคล็ดลับเกี่ยวกับวิธีที่ดีที่สุดในการมีเมนูหลักพร้อมเมนูย่อย? (เช่น Singleplayer -> โหลดบันทึก -> บันทึก 1-5? -> เริ่มเกมเป็นต้น)
คำตอบ:
โดยปกติจะทำโดยใช้สถานะเกมซ้อนกัน ตัวอย่างเช่นแต่ละไอเท็มที่แสดงด้านบนจะถูกส่งไปยังสแต็กดังนี้:
โดยที่แต่ละสถานะบนสแต็กอ้างถึงรายการย่อย เมื่อมีการคลิกปุ่มสถานะที่สอดคล้องกันจะถูกผลักลงบนสแต็กและกลายเป็นรายการยอดนิยมที่ถูกดึงและโต้ตอบกับ โดยปกติแล้วคุณจะวาดสถานะบนสุดนั้นเว้นแต่ว่ามีความโปร่งใสบางอย่างระหว่างเลเยอร์ซึ่งในกรณีนี้คุณจะวาดจากด้านล่างของสแต็กขึ้นไปจนกว่าคุณจะวาดสถานะที่ใช้งานอยู่
คุณควรใช้มันอย่างแน่นอนในฐานะเครื่องFinite-state (FSM) หรือStack of states (เมนูย่อย) ขึ้นอยู่กับข้อกำหนดที่แน่นอน ไม่ว่าเมนูย่อยใดจะเป็นเมนูปัจจุบันใน FSM หรือเมนูย่อยด้านบนของสแต็กจะดึงไปที่หน้าจอและจัดการอินพุต จากนั้นเมื่อตรวจพบว่าผู้ใช้คลิกปุ่มมันจะสลับ FSM หรือกดลงบนสแต็กในสถานะที่ถูกต้องเพื่อไปยังหน้าจอถัดไป
ในกรณีของคุณฉันคิดว่า Stack ดีที่สุด แต่ถ้าคุณมีระบบเมนูที่ซับซ้อนกว่าที่กระโดดไปรอบ ๆ เมนูโดยพลการคุณก็ต้องการใช้ FSM
"วิธีที่ดีที่สุด" เป็นอัตวิสัยทั้งหมด ดูวิธีที่เกมอื่นทำและดูว่าคุณพบเกมที่ใช้งานได้ดีหรือไม่ สิ่งหนึ่งที่คุณต้องการอย่างยิ่งคือวิธีที่ผู้ใช้สามารถกดยกเลิกและกลับไปที่ระดับก่อนหน้า คุณสามารถให้การอ้างอิงวัตถุเมนูแต่ละรายการกลับไปที่เมนูที่เปิดจากหรือใช้กับสแต็ก
นอกจากนั้นทุกอย่างขึ้นอยู่กับความรู้สึกของเกมและสิ่งที่คุณต้องการในเมนู แต่ละเมนูควรใช้ทั้งหน้าจอสไตล์ Final Fantasy หรือไม่ พวกเขาควรแยกออกจากกันเช่นเมนูย่อย Windows หรือไม่ คุณควรจะลองอะไรที่แปลกใหม่เช่นเมนูเรเดียนหรือไม่? มันขึ้นอยู่กับคุณจริงๆ