我寫了一個多人乒乓球遊戲,但由於~60ms的延遲,我的彈跳球並不順暢。 The game itself is available here,但由於它僅適用於Chrome和本身是用我的母語網站(你也顯然需要,以便它的工作兩個瀏覽器),這是問題的的jsfiddle:製作一個平滑的畫布球
正如您在小提琴中看到的那樣,dx
和dy
被定義,每秒更新被定義爲speed
。我需要這三個變量保持不變(我知道它們導致球不能平穩移動)。
現在的問題:是否有任何技巧不觸及這些變量,但讓球看起來像移動平穩?我正在考慮渲染球的新位置+以50%的不透明度渲染球的前一個位置,但我還沒有測試它。有沒有其他解決方案來解決這個問題?
是否有一個特定的原因,您不想觸摸'dx','dy'和'speed'?更頻繁的更新使得動畫更流暢。 –
@JasonP:首先,在我的原始應用程序中,'dx,dy'儘可能小(值1和2)。所以就是這樣。由於客戶端和服務器之間的延遲(大約50ms),「速度」不能改變,我也無法做任何事情。所以我需要一些技巧。 – ojek
如果您讓遊戲在客戶端上自行生成動畫,並且僅在需要與服務器同步時進行更改,該怎麼辦?此外,你可以讓步驟小於一步。 –