私はボールを射撃してゲームをプレイしようとしています。私はボールが上のボーダーと側のボーダーから跳ねるようにしたい。ボールは、最初はボトムボーダーに配置され、ユーザーがスポットに触れると、ボールはその方向に進み、ボーダーを跳ね返ります。しかし、一旦ボールがバウンドするのではなく、ボトムボーダーに再び触れるとボールが止まるようにしたい。私はボールがすべてのボーダーから飛び跳ねるように作ったが、トップとサイドだけでボールが跳ね返りたい。このコードが適切な応答に十分でない場合、私の謝罪します。私はこのフォーラムで比較的新しいです:)Swift SpriteKit 3辺のみが通行可能な境界線を作成する
let border = SKPhysicsBody(edgeLoopFrom: self.frame)
//create variable representing frame of gamescene
border.friction = 0
border.restitution = 1
self.physicsBody = border
これは衝突検出のコードです。それは以下垂れ下がるように、私は、シーンよりもわずかに長い矩形(黄緑色のボックスを概説)(白ボックス)フレームにedgeLoopを作成し、{
if (contact.bodyA.categoryBitMask == BodyType.ball.rawValue && contact.bodyB.categoryBitMask == BodyType.BottomBorder.rawValue){
SmallBall.isPaused = true
}
else if(contact.bodyB.categoryBitMask == BodyType.ball.rawValue && contact.bodyA.categoryBitMask == BodyType.BottomBorder.rawValue)
{
SmallBall.isPaused = true
}
}
}
それを停止応答あちこちありがとうございました!ボールの動きを止めるコマンドは何でしょうか?私はisPaused = trueとRemoveAllActions()を見たことがあるが、どちらもボールを止めていない。 – at26
私のコードを確認してください。元のコメントで編集しました。 – at26
物理的インパルスを使ってオブジェクトを動かしていると仮定すると、SmallBall.physicsBody?.velocity = CGVector(dx:0、dy:0)のようにベロシティを0,0に設定します。 –