2014-02-25 2 views
-4

저는 SpriteKit을 사용하여 개발 된 슬링 샷 기반 게임을 진행하고 있습니다. 그러나 물리학을 구현하는 방법에 대해서는 잘 모릅니다.SpriteKit을 사용한 슬링 샷?

누구나 구현 시작 방법에 대한 힌트를 제공 할 수 있습니까?

+1

안녕하세요, Almo, 제 생각에 당신은 너무 열심입니다. 이것은 자신과 같은 프로뿐만 아니라 나와 같은 인형을위한 지원 커뮤니티 여야합니다. 나 같은 초보자가 질문하는 것을 두려워 할 경우,이 웹 사이트는 다운 될 것이고 당신은 당신의 위대함을 축하하기 위해 혼자 남을 것입니다 ... 그리고 네, 다른 해결책을 찾으려고 노력했습니다. 그러나 내가 발견 한 것은 적합하지 않았습니다. SpriteKit. – Yuvals

+1

여기에는 어떤 질문을해야하는지에 대한 정의가 있습니다. http://stackoverflow.com/help 읽기. 우리는 규칙을 따르는 사람들을 매우지지합니다. 당신의 질문은 당신이 이것에 대한 연구를했다는 것을 보여주지 못합니다. 우리가 기대하는 것은 "나는 게임에서 물리학을 구현하는 데 어려움을 겪고있다. 내가 시도한 것은 다음과 같다 : - 작은 코드 샘플 - 샷은 움직이지 않는다 – Almo

답변

4

다음은 그러한 게임을 구현하는 방법에 대한 아이디어를 얻는 방법입니다.

우리가 던질 공을 만들어 봅시다. 및 angle을 원하는과의이 공에 충격을 적용 할 다음

-(id)initWithSize:(CGSize)size 
{ 
    if (self = [super initWithSize:size]) 
    { 
     _ball = [[SKShapeNode alloc] init]; 

     // Create a circle. 
     CGMutablePathRef circle = CGPathCreateMutable(); 
     CGPathAddArc(circle, NULL, 0,0, 60, 0, M_PI*2, YES); 

     // Set the shape of our ball and its color. 
     _ball.path = circle; 
     _ball.fillColor = [SKColor blueColor]; 
     _ball.position = CGPointMake(200, 200); 

     // Create a circular physics body. 
     _ball.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:60]; 

     [self addChild:_ball]; 

     // Create a physics body that borders the screen. 
     SKPhysicsBody* borderBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame]; 

     // Set physicsBody of scene to borderBody. 
     self.physicsBody = borderBody; 
    } 

    return self; 
} 

: 우리는 우리의 볼에 대한 SKShapeNode을 만들어야하고 물리 몸을 설정 그리고

@property(nonatomic, strong) SKShapeNode *ball; 

: 첫째, 우리는 속성이 필요합니다 magnitude : 구현에서

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    CGFloat angle = M_PI_4; 
    CGFloat magnitude = 1000; 

    [_ball.physicsBody applyImpulse:CGVectorMake(magnitude*cos(angle), 
               magnitude*sin(angle))]; 
} 

당신이 touchesBegan 및 01의 각도와 크기 값을 계산해야방법을 사용하고 touchesEnded에 충동을 적용하십시오.

이렇게하면 시작할 수 있습니다. 희망이 도움이됩니다.

+0

고마워, 정말로 좋은 시작이다. – Yuvals