คำถามติดแท็ก extrapolation

6
ฉันควรคาดการณ์เมื่อใดและควรแก้ไขเมื่อใด
ฉันมีปัญหาในการทำความเข้าใจเมื่อใดที่จะคาดการณ์และเมื่อใดที่จะแก้ไข ในเกมคนขายเหล้าเขาพูดเพื่อสอดแทรก แต่ในบทความอื่นแนะนำให้ผู้เล่นคาดการณ์ ดังนั้นคำถามของฉันคือเมื่อใดจะดีกว่าที่จะคาดการณ์และเมื่อใดจะดีกว่าที่จะสอดแทรก?

2
การแก้ไขจะทำงานอย่างไรเพื่อทำให้การเคลื่อนที่ของวัตถุราบรื่นขึ้น?
ฉันถามคำถามที่คล้ายกันสองสามครั้งในช่วง 8 เดือนที่ผ่านมาโดยไม่มีความสุขจริง ๆ ดังนั้นฉันจะทำให้คำถามทั่วไปยิ่งขึ้น ฉันมีเกม Android ซึ่งเป็น OpenGL ES 2.0 ภายในนั้นฉันมี Game Loop ดังต่อไปนี้: ลูปของฉันทำงานบนหลักการขั้นตอนเวลาที่แน่นอน (dt = 1 / ticksPerSecond ) loops=0; while(System.currentTimeMillis() > nextGameTick && loops < maxFrameskip){ updateLogic(dt); nextGameTick+=skipTicks; timeCorrection += (1000d/ticksPerSecond) % 1; nextGameTick+=timeCorrection; timeCorrection %=1; loops++; } render(); การรวมของฉันทำงานเช่นนี้: sprite.posX+=sprite.xVel*dt; sprite.posXDrawAt=sprite.posX*width; ตอนนี้ทุกอย่างทำงานได้สวยตามที่ฉันต้องการ ฉันสามารถระบุได้ว่าฉันต้องการให้วัตถุเคลื่อนที่ในระยะหนึ่ง (ความกว้างของหน้าจอพูด) ภายใน …

2
การคาดการณ์แบ่งการตรวจจับการชนกัน
ก่อนที่จะใช้การคาดการณ์กับการเคลื่อนไหวของสไปรต์การชนของฉันทำงานได้อย่างสมบูรณ์ อย่างไรก็ตามหลังจากที่ใช้การคาดการณ์กับการเคลื่อนไหวของสไปรต์ของฉัน (เพื่อทำให้สิ่งต่าง ๆ เรียบ) การชนจะไม่ทำงานอีกต่อไป นี่คือสิ่งที่ทำงานก่อนการคาดการณ์: อย่างไรก็ตามหลังจากที่ฉันใช้การคาดการณ์ของฉันแล้ว ฉันถือว่านี่เป็นเพราะมันทำหน้าที่ประสานงานใหม่ที่ได้รับการผลิตโดยขั้นตอนการอนุมาน (ซึ่งตั้งอยู่ในการเรียกของฉัน) หลังจากที่ฉันใช้การคาดการณ์ของฉัน วิธีแก้ไขพฤติกรรมนี้ ฉันลองใส่การตรวจสอบการชนกันเพิ่มเติมหลังจากการคาดการณ์ - นี่ดูเหมือนจะเคลียร์ปัญหาจำนวนมาก แต่ฉันได้ตัดออกเพราะการวางตรรกะในการแสดงผลของฉันไม่เป็นไปตามคำถาม ฉันได้ลองทำสำเนาตำแหน่ง spriteX โดยคาดการณ์และวาดภาพโดยใช้สิ่งนั้นแทนที่จะเป็นแบบดั้งเดิมดังนั้นการปล่อยให้แบบดั้งเดิมยังคงอยู่เพื่อตรรกะในการรับ - นี่ดูเหมือนจะเป็นตัวเลือกที่ดีกว่า แต่ก็ยังสร้างผลแปลก ๆ เมื่อชนกับผนัง ฉันค่อนข้างแน่ใจว่านี่ไม่ใช่วิธีที่ถูกต้องในการจัดการกับเรื่องนี้ ฉันพบคำถามที่คล้ายกันสองสามข้อที่นี่ แต่คำตอบไม่ได้ช่วยฉัน นี่คือรหัสการคาดการณ์ของฉัน: public void onDrawFrame(GL10 gl) { //Set/Re-set loop back to 0 to start counting again loops=0; while(System.currentTimeMillis() > nextGameTick && loops < maxFrameskip){ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.