2013-10-14 10 views
1

매번 같은 높이로 볼 스프라이트 점프가 바닥에서 떨어지길 원합니다. 그러나 모든 점프에서 볼의 최대 높이 위치가 증가합니다.SpriteKit : 예기치 않은 물리 문제

-(id)initWithSize:(CGSize)size {  
    if (self = [super initWithSize:size]) { 

     SKNode *ground = [SKNode node]; 
     ground.physicsBody = [SKPhysicsBody bodyWithEdgeFromPoint:CGPointZero toPoint:CGPointMake(CGRectGetMaxX(self.frame), 0)]; 
     [self addChild:ground]; 

     SKShapeNode *ball = [[SKShapeNode alloc] init]; 
     CGMutablePathRef myPath = CGPathCreateMutable(); 
     CGPathAddArc(myPath, NULL, 0, 0, 30, 0, M_PI*2, YES); 
     ball.path = myPath; 
     ball.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMaxY(self.frame)-100); 
     ball.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:ball.frame.size.width/2]; 
     ball.physicsBody.linearDamping = 0.0; 
     ball.physicsBody.restitution = 1.0; 
     [self addChild:ball]; 

    } 
    return self; 

}

어떤 제안이?

답변

1

볼뿐만 아니라 두 몸체 모두의 복원력과 마찰력을 확인하십시오. 성장하고 있고 줄어들지 않는다면, 물리학 시신에 오류가있을 수 있습니다. SKShapeNode은 내 테스트에서 신뢰할 만하지 않습니다. 대신 정상적인 유지를 위해 SKSpriteNode을 사용합니다.

+0

노드가 물리와 어떤 관계가 있습니까? 즉, 기본 물리학 본문은 관련된 물리기에 영향을받지 않습니다. – LearnCocos2D

+0

나는 똑같은 것을 생각하고 OP와 같은 원형 모양의 노드를 사용하기 시작했으며 스프라이트 노드를 사용하여 수정 한 물리 구조체와 함께 이상한 문제에 부딪쳤다. 어쩌면 여기 문제는 아니지만 모양 노드가 현재 상태의 어느 시점에서 문제를 일으킬 수 있다고 생각하는 두 가지 방법이 있습니다. 당신이 동의하지 않습니까? – Matt

+0

그럴 가능성은 매우 낮습니다. 왜 시야가 시체와 어떤 차이가 있습니까? 그리고 시체는 왜 시야에 따라 다르겠습니까? self.frame과 같은 뷰 속성을 사용하여 물리 본문을 초기화 할 수 있습니다 (예 : radius는 ball.frame.size에 따라 다릅니다). – LearnCocos2D

관련 문제