첫 번째 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
}
아래는 시각적 인 형태로 문제를 설명하는 GIF입니다 :
'intentedHeight'값은 얼마입니까? 그래서 높이가 스크린의 중앙이어야한다면, 무엇을 주어야합니까? –
@JimmyLee 그저 육각형의 중심 일 수 있습니다. 그것이 장면의 중심이기도하다면, let letHeight = view.frame.midY를 사용할 수 있습니다. – nathan
불행히도 이것은 내 문제를 해결하지 못했습니다 : / –