แผนที่จากบนลงล่าง 2d: การทำให้เป็นมาตรฐานหรือไม่?


11

ฉันเป็นผู้เริ่มต้นที่สมบูรณ์แบบด้วยการเขียนโปรแกรมเกมคำถามนี้ควรมีรูปแบบไม่ดีโปรดระวังว่ามันไม่เลอะเทอะข้างๆ แต่ยังขาดประสบการณ์การเขียนโปรแกรมเกม

เกมที่ฉันวางแผนจะใช้รหัสจะใช้แผนที่ 2D จากบนลงล่างเป็น "โลก" โลกอาจใหญ่กว่าหน้าต่าง (หน้าต่างสามารถซูมเข้าหรือออก) และยานพาหนะสามารถอยู่ที่จุดใดของโลก (= ไม่ใช่แผนที่ปูกระเบื้องพื้นที่คือ "ต่อเนื่อง")

หากต้องการอธิบายด้วยตัวอย่าง: หากโลกเป็นภูมิประเทศ 1,000x1000 เมตรยานพาหนะอาจอยู่ในตำแหน่ง (327.31, 720.4) เมตร

คำถามของฉันคือ: วิธีที่สะดวกที่สุดในการเป็นตัวแทนของโลกภายในคืออะไร? ฉันคิดว่าความเป็นไปได้เหล่านี้:

  • ไม่ทำอะไรเลยและใช้มิเตอร์เหมือนกับว่าฉันกำลังทำงานกับวัตถุทางกายภาพ
  • ปรับขนาดเป็นพิกเซลที่กำหนดขนาดโลกเป็นจำนวนพิกเซลสำหรับการแสดงผล 1,000 เมตรที่การซูมสูงสุด
  • ปรับมาตรฐานให้เป็น 1 เพื่อกำหนดคำเป็นสี่เหลี่ยมจัตุรัสขนาด 1

... แต่ฉันแน่ใจว่าอาจมีบางคน / ของฉันบางคนอาจไม่มีเหตุผล เป็นเพียงเกมแรกของฉันที่ฉันไม่มีภาพที่ชัดเจนของปัญหาที่เกิดขึ้นข้างหน้าของฉันและฉันต้องการคำแนะนำบางอย่างในการตัดสินใจเลือกที่ถูกต้องอย่างสมเหตุสมผล

ขอขอบคุณสำหรับเวลาของคุณ.


ฉันมีปัญหานี้ ฉันจะไม่โพสต์เป็นคำตอบ - มีสิ่งที่ยอดเยี่ยมอยู่แล้ว แต่ถ้าคุณทำงานในบางหน่วยคุณสามารถรองรับความละเอียดใด ๆ เพียงแค่ปรับแต่งค่าเดียว นอกจากนี้ยังง่ายต่อการจัดการในแง่ของการเล่นเกม ในที่สุดด้วยจำนวนมากเช่นการวัดพิกเซลซิมฟิสิกส์สามารถระเบิดได้
The Duck คอมมิวนิสต์

คำตอบ:


10

ฉันเห็นด้วยกับการใช้ค่าจริง (เมตรฟุต ฯลฯ ) เป็นพื้นฐานสำหรับระยะทางของคุณ ปัญหาเกี่ยวกับข้อเสนอแนะอีกสองข้อของคุณคือพวกเขาเป็นทั้งตัวแปร การทำงานกับขนาดโลก1จะทำให้เลขคณิตทั้งหมดของคุณเป็นทศนิยมระหว่าง -1 ถึง 1 ซึ่งอาจทำให้เกิดข้อผิดพลาดจุดลอยตัวมากขึ้น นอกจากนี้หากคุณตัดสินใจที่จะสร้างขนาดโลกที่แปรปรวน (โลก "ใหญ่" สำหรับเกมที่ยาวขึ้น ฯลฯ ) คุณจะแนะนำปัญหามากมายให้กับรหัสของคุณ ในทำนองเดียวกันหากคุณใช้พิกเซลแม้ในระดับการซูมสูงสุด / ต่ำสุดคุณจะสับสนและมีปัญหาหากคุณตัดสินใจที่จะเพิ่มหรือลดระดับการซูม


คำตอบนี้ยอดเยี่ยม (+1) ฉันชอบวิธีที่คุณอธิบายปัญหาที่อาจเกิดขึ้นจากการใช้ "1" สำหรับขนาดของโลก
Randolf Richardson

หากคุณทำการจำลองทางกายภาพใด ๆ แม้ว่าจะเป็นการแต่งหน้าเต็มรูปแบบการใช้จำนวนเต็มจุดคงที่จะทำให้ผลลัพธ์ไม่ถูกต้อง สิ่งที่คุณต้องทำคือทำตัวแบบยานพาหนะคันเดียวที่เคลื่อนที่ด้วยความเร็วหน่วยบนเส้นทแยงมุมและคุณจะพบว่าคุณไม่มีทางที่จะแสดงตำแหน่งได้อย่างถูกต้อง
edA-qa mort-ora-y

3
ข้อตกลง RE: ใช้เมตร มันจะช่วยให้คุณเห็นภาพจิตใจและเข้าใจในสิ่งต่าง ๆ เช่นกัน "ยานพาหนะนั้นมีความยาว 5 เมตร" หรือ "วัตถุทั้งสองนี้อยู่ห่างกัน 500 เมตร" และไม่ต้องทำคณิตศาสตร์จิตตลอดเวลาเพื่อให้ได้ความรู้สึกในสิ่งที่คุณกำลังทำอยู่
ทิมโฮลท์

-1 คำแถลงเกี่ยวกับการคำนวณเลขจำนวนเต็มที่เร็วกว่าจุดลอยตัวนั้นไม่เป็นความจริงโดยทั่วไปในความเป็นจริงพวกเขาจะเร็วกว่ามากในแพลตฟอร์มที่ทันสมัยที่สุด
Maik Semder

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

7

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

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


5

การทำให้ปกติเป็น '1' ไม่ใช่วิธีที่จะไป (ถ้าคุณมีโลกที่ไม่เป็นสี่เหลี่ยมหรือโลกที่มีขนาดแตกต่างกัน ... )

ใช้พิกเซลเป็น ... ไม่มิกซ์เพลย์และการวัดกราฟิก !! อย่าล็อคตัวเองเพื่อที่คุณจะไม่สามารถเปลี่ยนกราฟิกได้โดยไม่ต้องเปลี่ยนรหัส

ดังนั้นเมตร (ฟุตหรือการวัดใดก็ตามที่คุณชอบมากที่สุด) เป็นวิธีที่จะไป คุณจะรู้สึกดีกว่าเมื่อเขียนโค้ดตัวเปิดใช้ขีปนาวุธของคุณให้ขยับไปที่ 50 กม. / ชม. มากกว่า 0.00076 หน่วย / วินาที ...

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