【发布时间】:2018-05-30 03:59:31
【问题描述】:
我正在尝试制作我的第一个 iOS 应用程序,但目前遇到了问题。
在我的游戏中,当球弹起时,我希望它以相同的速度弹回相同的高度。目前它做得很好。但是,当我旋转六边形并碰到一个角度时,它最终会失去速度并且不会弹回相同的高度。
所以我的问题是:我如何迫使球在碰撞时保持相同的速度?
这是我的 Ball 节点的代码:
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
}
【问题讨论】:
标签: ios iphone swift xcode physics