私はスプライトの中心を見つけようとしています。私はサッカーボールのスプライトを使用し、サイズを120で120に変更しました。 私はタッチ位置を取得できました。Swift 2でSKSpriteNodeの実際の中心を取得するにはどうすればよいですか?
センターを取得する方法は、sprite.origin.x +(sprite.width/2)にする必要がありますが、何らかの理由で、私が得ている値は意味がありません。どこにボールが接触しても、touch.xはSpriteの中心より常に小さくなります。たとえば、ボールの右側をタッチしたとしても、location.xはsprite.centerよりも大きくなければなりません。バツ。
これは、ボールの中心点
let ballCenter = CGVectorMake(ball.position.x + (ball.frame.width/2),
ball.position.y + (ball.frame.height/2))
を得るために少しのコードである。しかし、私はこのような結果を印刷するとき、常に「真」の場合に起こっています。
if location.x < ballCenter.dx {
print("touched on left of ball ", location.x, location.y)
}else{
print("touched on right of ball ", location.x, location.y)
}
これは私を夢中にしています。スプライトの原点は左下にありませんか?
また、なぜシーンフレームが小さいのですか?私はiPhone 6Sを使用しているとき、私の画面の幅は375.0で、画面の高さは667.0です。これはとても混乱しています。
ありがとうございます。
あなたは正しいです!どうもありがとう! – msqar
よろしくお願いします! – claassenApps
これを達成する手助けができますか? http://stackoverflow.com/questions/37998343/impulse-skspritenode-depending-on-touched-location-swift-2それは私のナッツを運転しています。ハハはすでに多くのことを試みましたが、私はまだ素晴らしい方法を考え出すことができませんでした。している – msqar