มีอนุสัญญาและ / หรือวิธีการที่รู้จักกันดีที่สุดเกี่ยวกับระบบพิกัดในแผนที่เกมหรือไม่? จุดเริ่มต้นมักจะอยู่ในตำแหน่งกึ่งกลางของแผนที่หรือไม่ หรือมันอาศัยอยู่ในมุมหนึ่งและแผนที่ถูกสร้างขึ้นใน octant เดียวของพื้นที่ 3D หรือไม่?
มีอนุสัญญาและ / หรือวิธีการที่รู้จักกันดีที่สุดเกี่ยวกับระบบพิกัดในแผนที่เกมหรือไม่? จุดเริ่มต้นมักจะอยู่ในตำแหน่งกึ่งกลางของแผนที่หรือไม่ หรือมันอาศัยอยู่ในมุมหนึ่งและแผนที่ถูกสร้างขึ้นใน octant เดียวของพื้นที่ 3D หรือไม่?
คำตอบ:
เกมส่วนใหญ่วางต้นกำเนิดแผนที่ไว้ที่มุมหนึ่ง เหตุผลหลักสำหรับสิ่งนี้คือไทล์แม็พมักจะถูกเก็บไว้ภายในในอาร์เรย์สองมิติและภาษาการเขียนโปรแกรมส่วนใหญ่ไม่อนุญาตให้มีดัชนีอาเรย์เชิงลบ มีจำนวนมากของการอภิปรายเกี่ยวกับการเป็นที่มุมควรเป็นจุดเริ่มต้นที่ผมไม่ได้พิจารณาใด ๆ ของการขัดแย้งโดยเฉพาะอย่างยิ่งที่แข็งแกร่ง แต่ ในท้ายที่สุดมันเป็นเพียงการตั้งค่าส่วนตัว ฉันอยากจะแนะนำให้ใช้มุมเดียวกับที่ API กราฟิกของคุณใช้เพื่อลดอาการปวดหัว
ข้อยกเว้นมักจะเป็นเกมที่อนุญาตให้แผนที่ที่เติบโตอย่างไม่ จำกัด ในทุกทิศทาง ไม่สามารถทำงานได้อย่างถูกต้องหากไม่มีดัชนีเชิงลบดังนั้นอาร์เรย์ 2 มิติที่เรียบง่ายจึงไม่เป็นปัญหา คุณจะต้องจัดเก็บข้อมูลแผนที่ในโครงสร้างข้อมูลที่ซับซ้อนมากขึ้น ในสถานการณ์นี้มักจะเหมาะสมที่สุดที่จะวางต้นกำเนิดที่ตำแหน่งเริ่มต้น
ในทางทฤษฎีแล้วที่ตั้งของต้นกำเนิดนั้นไม่สำคัญ การดำเนินการทางคณิตศาสตร์ทั้งหมดที่คุณทำเมื่อมีการแสดงแผนที่หรือเมื่อวัตถุเคลื่อนที่บนแผนที่จะทำงานได้ดีโดยไม่คำนึงถึงแหล่งที่มาจริง
อย่างไรก็ตามในทางปฏิบัติมีเหตุผลหนึ่งว่าทำไมคุณอาจต้องการทำให้ศูนย์กลางของแผนที่เป็นจุดกำเนิดและนั่นคือความแม่นยำที่ จำกัด ของค่าจุดลอยตัว
ด้วยจำนวนจุดลอยตัวยิ่งคุณได้รับจาก 0 ยิ่งมีความแม่นยำน้อยลงในตัวเลขที่น้อยกว่า
ในขณะที่ทำงานในเกมเปิดโลกที่มีแผนที่ใหญ่มากจริง ๆ แล้วเราพบปัญหาที่ฟิสิกส์และสิ่งอื่น ๆ จะเริ่มพังทลายลงเมื่อคุณอยู่ห่างจากแหล่งกำเนิด
การแก้ไขคือการใช้กลอุบายที่แหล่งกำเนิดอยู่ใกล้กับผู้เล่นเสมอโดยการเคลื่อนย้ายสิ่งต่าง ๆ อย่างชาญฉลาด (ผู้เล่น, แผ่นแผนที่, กล้อง ฯลฯ ) ไปรอบ ๆ เพื่อไม่ให้ห่างไกลจากแหล่งกำเนิด
มันไม่สำคัญหรอก สิ่งที่บางคนเปลี่ยนแปลงในระบบพิกัดมักจะเป็นแกน y แทนที่จะมี (0,0) ที่มุมบนซ้ายพวกเขาชอบที่จะอยู่ที่มุมล่างซ้ายเพื่อให้ได้ฟิสิกส์ที่ง่ายขึ้น