ปัญหาบ่อน้ำ (Draw Order)
posted on 08 Jan 2008 13:53 by xnanoob in Tutorials
สวัสดีค่า
วันนี้มามั่วกับปัญหาลำดับการวาดภาพนะค่ะ ในการจัดอันดับการวาดภาพนั้นในสองมิติ
ใครมาก่อนก้อจะโดนวาดก่อนนะ ใครมาหลังก้อโดนวาดหลัง
วาดหลังนั้นหมายถึงว่า วาดทับ ทับภาพที่วาดไป

ภาพที่1 แสดงภาพบ่อน้ำวาดหลังตัวละคร
เพราะฉะนั้นภาพบ่อน้ำก้อจะทับตัวละคร ในภาพที่1.A) นั้น เหมือนจะแสดงผลผิดพลาด
แต่ในส่วนของภาพที่ 1.B) นั้น เป็นสิ่งที่เราต้องการ เพราะตัวละครยืนอยู่ส่วนบนของบ่อ
การแก้ไขนั้น ถ้าเราให้ตัวละครวาดหลัง ก้อจะแก้ปัญหาในภาพ A ได้ แต่ในกรณี B
ก้อจะมีปัญหาสลับกันเกิดขึ้นมา (นึกภาพตามเองเองนะ)
และทำการวาดอีกครั้งหนึ่ง
| spriteBatch.Begin(); // วาดบ่อ spriteBatch.Draw(well, new Vector2(200, 140), Color.White);
// วาดตัวละคร spriteBatch.Draw(well, new Vector2(200, 140), Color.White); } spriteBatch.End(); |

หาพิกัด ตัวอย่าง พิจารณาแกน Y ที่ความสูงคือ 162
ผลการทดลอง
จบแระค่ะ บายค่ะ
ปล. ใครมีวิธีอื่นๆ บ้างแนะนำหน่อยนะค่ะ เพราะถ้ามีของในฉากเยอะคงไม่ดีแน่นอน เฮือก งุงิ งุงิ
โคสะนา : บริการเว็บไซด์สำเร็จรูป ใช้งานง่ายม๊ากมาก จริงๆ นะค่ะ เพียงคุณติดต่อไปและแจ้งว่าได้ข่าวจาก XNANOOB ลดทันที 10% ขอบคุณค่ะ กดเลย http://www.smewell.com








#1 By
มาสเตอร์แชมป์ on 2008-01-08 14:27