หลังจากเพิ่มความเร็วให้กับเกมของฉันฉันรู้สึกว่าพื้นผิวของฉันกระตุก ฉันคิดว่ามันเป็นแค่ดวงตาของฉันจนกระทั่งในที่สุดฉันก็จับมันเป็นภาพหน้าจอ:
ด้านซ้ายเป็นสิ่งที่แสดงในเกมของฉัน ด้านขวาคือสไปรต์ดั้งเดิมวางอยู่ (นี่เป็นภาพหน้าจอจาก Photoshop, ซูมเป็น 6x)
สังเกตว่าขอบเป็นนามแฝง - ดูเหมือนว่าการเรนเดอร์พิกเซลย่อยเกือบจะเหมือนกัน ในความเป็นจริงถ้าฉันไม่ได้บังคับสไปรต์ของฉัน (ซึ่งมีตำแหน่งและความเร็วเป็น ints) เพื่อวาดโดยใช้ค่าจำนวนเต็มฉันจะสาบานว่า MonoGame กำลังวาดด้วยค่าจุดลอย แต่มันไม่ใช่
อะไรเป็นสาเหตุของสิ่งเหล่านี้ที่ปรากฏพร่ามัว มันจะไม่เกิดขึ้นหากไม่ใช้ความเร็ว
เพื่อความแม่นยำSpriteComponent
ชั้นเรียนของฉันมีVector2 Position
ทุ่งนา เมื่อฉันโทรDraw
ฉันใช้เป็นหลักnew Vector2((int)Math.Round(this.Position.X), (int)Math.Round(this.Position.Y))
สำหรับตำแหน่ง
ผมมีข้อผิดพลาดก่อนที่แม้แต่วัตถุนิ่งจะพร่ามัว - นั่นเป็นเพราะผมใช้ตรงเวกเตอร์และไม่ปัดเศษค่าที่จะPosition
ints
ถ้าฉันใช้Floor
/ Ceiling
แทนการปัดไปรอบ ๆ sprite / hovers (หนึ่งพิกเซลต่างกัน) และยังคงพร่ามัว