ปกติถ้าต้องการเขียนเกมในระบบ window mode ด้วย vc++ และ directX ต้องทำสองสิ่งต่อไปนี้คือ
1. สร้างหน้าต่าง ด้วยคำสั่งอย่าง InitWindow
เช่น InitWindow(hinstance,hwnd, 640, 480);
2. เริ่มต้น Direct3D ด้วยคำสั่ง CreateDevice
โดยมี parameter อย่าง
D3DPRESENT_PARAMETERS d3dpp;
d3dpp.BackBufferWidth = width;
d3dpp.BackBufferHeight = height;
โดยปกติแล้วถ้าเป็นการเขียนเกมทั่วไปที่ใช้ keyboard บังคับจะไม่เจอปัญหาอะไรผิดปกติ
แต่ถ้าจะเขียนให้มีการใช้เมาส์ click ตัวละคร 3D ( Picked) โดยเทียบกับ mouse position แล้ว
สำหรับมือใหม่ (อย่างผม) จะเจอปัญหาคล้ายๆกันคือ
เกิดความคลาดเคลื่อนเล็กๆอันเนื่องมาจาก ขนาดหน้าจอที่ใช้คำนวน กับขนาดจริงๆของมันต่างกันดังรูปประกอบ

จากตัวอย่าง ตอนสร้าง window เรากำหนดขาดเป็น 640x480
ตามความเข้าใจของผมทีแรกผมเข้าใจว่าเราจะมีพื้นที่ใช้งาน (สีขาวๆ ) เป็น 640x480
ส่วนพวก title bar นั่น windows มันน่าจะไปเพิ่มเอาเอง ... แต่ไม่ใช่
ความจริงคือขนาด 640x480 ที่เราสั่งนั้นมันรวม พวก กรอบข้างๆและไตเติ้ลบาร์ไปด้วยแล้ว
แล้วจะทำยังไง?
**Hidden Content: To see this hidden content your post count must be 1 or greater.**