Iセットアップするための新しいPhysicsBody次のコードを持っている:ユーザが画面に触れたとき、私は彼らが内側に触れているかどうかを判断しようとしているスウィフト
let size = CGSize(width: 100, height: 10)
let player = SKShapeNode(rectOf: size)
player.lineWidth = 1
player.physicsBody = SKPhysicsBody(rectangleOf: size)
player.physicsBody?.affectedByGravity = false
player.physicsBody?.isDynamic = true
を左、または右にオブジェクト:?デバッグ文、および私の実験は私に言っている何
func touchDown(atPoint pos : CGPoint) {
if (pos.x <= (player?.position.x)!) {
// left
} else if (pos.x >= (player?.position.x)! + (player?.frame.width)!) {
// right
} else {
print(player?.position.x)
print ((player?.position.x)! + (player?.frame.width)!)
print(pos.x)
// middle
}
}
は、プレイヤー.frame.widthは、オブジェクトの正しい幅を返していないことです。しかし、それ以上に、私はオブジェクトが途方もなくてもセンターを返すようです。オブジェクトは動いているので、以前の位置に戻っていることが問題だと思う。
私は2つの部分の質問があります:frame.widthは幅を決定する正しい方法ですか?touchesBeganイベントを使用するとこの明らかな情報の遅れを引き起こす可能性がありますか?
ありがとうございました。 –