เวอร์ชั่นสั้น
มีรูปแบบการออกแบบสำหรับการกระจายฉลากยานพาหนะในแบบที่ไม่ทับซ้อนกันวางไว้ใกล้กับยานพาหนะที่พวกเขาอ้างถึงมากที่สุดหรือไม่? ถ้าไม่มีวิธีใดที่ฉันแนะนำให้ปฏิบัติได้? คุณจะใช้สิ่งนี้ด้วยตนเองอย่างไร?
รุ่นขยาย
ในเกมที่ฉันเขียนฉันมีวิสัยทัศน์ที่ชัดเจนจากยานพาหนะทางอากาศของฉัน ฉันมีป้ายเล็ก ๆ ติดกับคีย์ข้อมูลเกี่ยวกับยานพาหนะแต่ละคันด้วย นี่เป็นภาพหน้าจอจริง:
ตอนนี้เนื่องจากยานพาหนะสามารถบินในระดับความสูงที่แตกต่างกันไอคอนของพวกเขาอาจทับซ้อนกัน อย่างไรก็ตามฉันไม่ต้องการให้ป้ายกำกับของพวกเขาซ้อนทับกัน (หรือป้ายกำกับจากยานพาหนะ 'A' ทับไอคอนรถถัง 'B')
ขณะนี้ฉันสามารถตรวจสอบการชนกันระหว่างสไปรท์และผมก็ผลักดันออกไปป้ายที่กระทำผิดในทิศทางตรงข้ามกับผีสางมิฉะนั้นการที่คาบเกี่ยวกัน สิ่งนี้ใช้ได้ในสถานการณ์ส่วนใหญ่ แต่เมื่อน่านฟ้าหนาแน่นผู้คนสามารถขับป้ายได้ไกลจากยานพาหนะแม้ว่าจะมีทางเลือก "ฉลาด" ทางเลือก ตัวอย่างเช่นฉันได้รับ:
B - label
A -----------label
C - label
มันจะดีกว่า (= ฉลากใกล้กับยานพาหนะ) เพื่อรับ:
B - label
label - A
C - label
แก้ไข:มันจะต้องได้รับการพิจารณาว่าข้างตัวถังรถที่ทับซ้อนกันอาจจะมีการกำหนดค่าอื่น ๆ ที่labellab'labelสามารถทับซ้อนกัน (ตัวอย่าง ASCII-art แสดงตัวอย่างรถสามคันที่อยู่ใกล้กันมากซึ่งฉลากของA
จะทับไอคอนของB
และC
)
ฉันมีสองแนวคิดเกี่ยวกับวิธีการปรับปรุงสถานการณ์ปัจจุบัน แต่ก่อนที่จะใช้เวลาในการดำเนินการพวกเขาฉันคิดว่าจะหันไปหาชุมชนเพื่อขอคำแนะนำ (หลังจากทั้งหมดดูเหมือนว่าจะเป็น
สำหรับสิ่งที่คุ้มค่าต่อไปนี้เป็นสองแนวคิดที่ฉันคิด
Slot-isation ของพื้นที่ฉลาก
ในสถานการณ์นี้ฉันจะแบ่งหน้าจอทั้งหมดเป็น "ช่อง" สำหรับป้ายกำกับ จากนั้นยานพาหนะแต่ละคันจะมีป้ายของมันวางไว้ในที่ว่างเปล่าที่ใกล้เคียงที่สุดเสมอ (ว่าง = ไม่มีสไปรต์อื่น ๆ ที่ตำแหน่งนั้น
การค้นหาที่น่าสนใจ
จากตำแหน่งของยานพาหนะบนหน้าจอฉันพยายามวางป้ายในมุมที่เพิ่มขึ้นและเพิ่มรัศมีจนกระทั่งพบตำแหน่งที่ไม่ทับซ้อนกัน บางสิ่งบางอย่างลงไปที่:
try 0°, 10px
try 10°, 10px
try 20°, 10px
...
try 350°, 10px
try 0°, 20px
try 10°, 20px
...