내 게임에서는 중력에 의해 영향을받는 공을 만들고 있습니다. 게임이 시작될 때 그들은 화면 밖으로 떨어지고 바닥에 그들의 장소를 얻습니다. 다른 힘은 그들에게 적용되지 않습니다.매회 다른 결과를주는 SpriteKit 물리학
문제는 이전의 것과 같은 정확한 물리 특성을 가진 정확한 좌표로 볼을 만드는 것이지만 결과는 동일하지 않습니다. 유사하지만 동일하지는 않습니다. 그러나 매번 값이 같기 때문에 정확하게 같아야한다고 생각합니다.
아래 그림 3에서 내가 말한 것을 이해할 수 있습니다.
이유가 궁금하십니까? 어떻게 해결할 수 있습니까?
BallSpriteNode *sprite = [BallSpriteNode spriteNodeWithTexture:ballTexture];
sprite.xScale = scale;
sprite.yScale = scale;
sprite.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:sprite.size.width/2];
sprite.physicsBody.density = 1.0f;
sprite.physicsBody.restitution = 0;
sprite.physicsBody.dynamic = YES;
sprite.physicsBody.categoryBitMask = ballHitCategory;
sprite.physicsBody.contactTestBitMask = ballHitCategory;
sprite.physicsBody.collisionBitMask = ballHitCategory;
CGPoint startPosition = CGPointMake(xPosition, yPosition);
sprite.position = startPosition;
[bounceScene addChild:sprite];
매번 정확한 결과를 얻으려면 물리 엔진이 어떤 일이 일어나는지 판단하지 않아야합니다. 당신 자신의 손에서 통제하십시오. 초기 위치에 물체를 놓을 때까지 물리 엔진을 비활성화하십시오. 그런 다음 SKActions를 사용하여 필요한 경우 개체를 이동합니다. 그 후에, 당신은 그 물체에 물리학자를 다시 가능하게 할 수 있습니다, 그리고 당신은 잘 가야합니다. – Whirlwind
그것은 나를위한 옵션이 아닙니다. 나는 여러 레벨을 가지고 있으며 각 레벨마다 볼 순서가 다릅니다. 나는 모든 다른 상황을 위해 그것을 할 수 없다. 물리학은 일관되게 행동해야합니다. – mkeremkeskin
그래서 문제가 어디 있습니까? 각 객체의 시작 위치 배열을 만들거나 시작 위치를 나타내는 공당 CGPoint를 정의합니다. 원하는 방식으로 물리 엔진에 의존 할 수 없습니다. – Whirlwind