0
我有一個無盡的亞軍遊戲,我的主角有一個物理體,我用它來處理跳躍。
他碰到障礙物之前一切都很好。他開始向後移動,並且我希望他隨時保持他的x位置。如何防止物理體在Sprite Kit中改變x位置
我嘗試將身體動態設置爲NO,但是這會停止跳躍。
我該如何解決這個問題?我不想讓角色在x軸上移動。
我有一個無盡的亞軍遊戲,我的主角有一個物理體,我用它來處理跳躍。
他碰到障礙物之前一切都很好。他開始向後移動,並且我希望他隨時保持他的x位置。如何防止物理體在Sprite Kit中改變x位置
我嘗試將身體動態設置爲NO,但是這會停止跳躍。
我該如何解決這個問題?我不想讓角色在x軸上移動。
爲此上的更新方法
- (void)didSimulatePhysics {
CGPoint fixedXPos = myCharacter.position;
fixedXPos.x = fixedX;
[myCharacter setPosition:fixedXPos];
}
也可以使用約束
let range = SKRange(lowerLimit: 300, upperLimit: 340)
let lockToCenter = SKConstraint.positionX(range, y: range)
node.constraints = [ lockToCenter ]
並設置下限和上限爲相同的值爲它被鎖定在適當位置。
實際上,這應該在didSimulatePhysics中,如果使用更新,節點將在物理計算位置處被繪製,然後再被更新。這可能導致節點或多或少地顯着地關於期望的x座標抖動。 – LearnCocos2D
好吧,你是對的。過去我用過的物體不能快速移動,因此抖動不明顯,但你是對的。在didSimulatePhysics上做到這一點解決了這個問題。我改變了這一點。 – SpaceDog