0
我有一個節點在屏幕上以400pps的速度移動。我想在節點到達屏幕上的精確位置時停止節點。我正在通過在更新週期中將節點速度設置爲0來做到這一點。停止節點到精確的位置
但是,節點移動通過期望的點不可預知的量,並在稍後停止。 我懷疑問題出在響應時間。簡而言之,物理引擎不夠快速,無法準確停止節點。我的應用程序在Mac上運行速度爲30fps,在iPhone 5S上運行速度爲60fps。
什麼是實現精確節點移動和停止的最佳方式?我想我可以在停止之後將節點重新定位到所需位置,但這可能會弄亂所有物理世界。 這是我的更新方法的相關部分的樣子:
- (void)update:(NSTimeInterval)currentTime {
// Start moving
if(verticalScrollSpeed) {
node.physicsBody.velocity = CGVectorMake(0, verticalScrollSpeed);
}
// Stop moving
if(verticalScrollSpeed > 0 && obstaclesContainerNode.position.y >= 0) {
verticalScrollSpeed = 0;
node.physicsBody.velocity = CGVectorMake(0, 0);
}
}
謝謝。我懷疑這些問題的選擇是有限的,最終我認爲節點在接近目標位置時放慢了速度是值得推薦的。暴力破壞節點的位置會擾亂物理和碰撞。遲早會有另一個節點不可預知地通過節點,而不是與它發生衝突。再次感謝。 – Alex