0
私は最初のiOSアプリケーションを作成しようとしていて、現在問題が発生しています。SKSpriteKit衝突後に一定の速度を維持する
私の試合では、ボールがバウンスすると、同じ高さと速度で跳ね返りたいと思います。現在、それだけで問題ありません。しかし、六角形を回転させて角度をつけると、速度が失われ、同じ高さに跳ね返ることはありません。
私の質問は次のとおりです。衝突時にボールが同じ速度を維持するようにするにはどうすればよいですか?
はここに私のボールノードのためのコードです:
func createBallNode(ballColor: String) -> SKSpriteNode {
let ball = SKSpriteNode(imageNamed: ballColor)
ball.position = CGPoint(x: CGRectGetMidX(frame), y: CGRectGetMidY(frame)+30)
ball.zPosition = 1
ball.physicsBody = SKPhysicsBody(circleOfRadius: ball.size.width/2)
ball.physicsBody?.affectedByGravity = true
ball.physicsBody?.restitution = 1
ball.physicsBody?.linearDamping = 0
ball.physicsBody?.friction = 0
ball.physicsBody?.categoryBitMask = ColliderType.Ball.rawValue
ball.physicsBody?.contactTestBitMask = ColliderType.Rect.rawValue
ball.physicsBody?.collisionBitMask = ColliderType.Rect.rawValue
let centerX = ball.position.x
let range = SKRange(lowerLimit: centerX, upperLimit: centerX)
let constraint = SKConstraint.positionX(range)
ball.constraints = [constraint]
return ball
}
「intentedHeight」はどの値になりますか?だから高さが画面の真ん中になければならないのですが、どうすればいいですか? –
@JimmyLeeこれはちょうど六角形の中心になります。それがシーンの中心でもある場合は、let letHeight = view.frame.midYを使用できます。 – nathan
残念ながら、これは私の問題を解決するのに役立たなかった:/ –