2016-08-10 4 views
0

ユーザーに続く眼球を作成したいと思います。この意味で、目はユーザの位置に従うべきであるが、特定の範囲(眼窩)内を移動できるだけであるべきである。私が下に書いたコードは動作しますが、非常に不安定です。スプライトを別の「範囲内」に続ける方法

if(dist <= socketRadius - self.aEye.size.width/2.2){ 
    lastPosition = self.aEye.position 
    self.aEye.physicsBody?.velocity = CGVector(dx:theVec.dx * eyeMoveSpeed, dy:theVec.dy * eyeMoveSpeed) 
} 
else{ 

    let toCenterVector = normalizeVector(CGVector(dx:(self.socket.position.x - self.aEye.position.x), dy:(self.socket.position.y - self.aEye.position.y)*3)) 
    self.aEye.physicsBody?.velocity = toCenterVector 
    print(toCenterVector) 
    print("Out") 
} 

ユーザの位置を追跡するためのソケットの周りの眼球の円滑な流れを持ってする方法はあります(distはeyesocketセンターへの眼球からの距離ですか)?

答えて

2

これを実現するにはSKConstraintsを使用できます。次のようなもの:

let rangeToCenterSprite = SKRange(lowerLimit: 80, upperLimit: 90) 
var distanceConstraint: SKConstraint 

distanceConstraint = SKConstraint.distance(rangeToCenterSprite, toNode: SpriteNodeInEyeCenter) 
EyeBallSprite.constraints = [distanceConstraint] 
+0

これは完全に機能しました。 Swiftにはまだ含まれていないものがいくつかあるようです。 – Sam

関連する問題