4
วิธีจัดการกับความแตกต่างระหว่างพิกัดหน้าจอ 2D และพิกัดคาร์ทีเซียน
ระบบพิกัดหน้าจอ / บิตแมป 2D ส่วนใหญ่มีแกน Y บวกที่ชี้ลง (โดยมีจุดเริ่มต้นที่มุมซ้ายบน) นี่เป็นสิ่งที่ตรงกันข้ามกับที่คนส่วนใหญ่คิดเชิงเรขาคณิตโดยมีแกน Y บวกชี้ขึ้น (โดยมีจุดกำเนิดอยู่ตรงกลาง) เกมส่วนใหญ่จัดการระบบพิกัด 2D สองระบบที่ต่างกันได้อย่างไร มีสองประเภทหลักของพิกัด (หน้าจอเทียบกับคาร์ทีเซียน) แต่อาจมีช่องว่างพิกัดที่แตกต่างกันมาก: พื้นที่สไปรท์พื้นที่โลกพื้นที่ดูพื้นที่หน้าจอ ฯลฯ ... พื้นหลัง: เดิมทีฉันสร้างพิกัดโลกในเกมของฉันให้ตรงกับแบบแผนการประสานงานหน้าจอ 2 มิติ สิ่งนี้ทำให้เป็นเรื่องธรรมดามากที่จะใช้รูทีนการวาดภาพกราฟิก แต่ปัญหาที่ละเอียดอ่อนเกิดขึ้นเมื่อใช้ฟังก์ชันตรีโกณมิติเช่น atan2 () ผลลัพธ์ของการป้อนพิกัด atan2 () หน้าจอ 2D มีความสับสนอย่างมากเนื่องจาก atan2 () สมมติว่าแกน y บวกขึ้น ดังนั้นฉันจึงเปลี่ยนพิกัดโลกของฉันให้เป็นไปตามระบบพิกัดคาร์ทีเซียนแบบคลาสสิก (โดยมีจุดเริ่มต้นที่ด้านล่างซ้ายของหน้าจอ) การใช้เหตุผลกับ atan2 () นั้นตรงไปตรงมามากกว่า แต่ตอนนี้การทำเหตุผลประเภทอื่น ๆ ทำได้ยากขึ้น: หากฉันคลิกที่หน้าจอที่นี่สิ่งที่สไปรต์อยู่ด้านล่าง …
23
2d
screen
coordinates