[SpriteKit] SpriteNode 에 gravity 적용하는 방법
player 를 SpriteNode 로 생성하였습니다. 이미지를 삽입하여 생성하면 이미지 크기로 생성이 됩니다. self . player = [[ SKSpriteNode alloc ] initWithImageNamed : @"spaceman.png" ]; 위와 같이 spaceman.png 를 삽입하여 생성합니다. 이 플레이어만을 중력값을 적용하고 싶을 때 이렇게 하면 됩니다. 아래에서 200 정도 위에 중앙에 위치시킵니다. self . player . position = CGPointMake ( CGRectGetMidX ( self . frame ), CGRectGetMidY ( self . frame ) - 200 ); 그 다음 이 한줄을 추가해야 합니다. 저도 이것때문에 며칠을 찾았습니다. self . player . physicsBody = [ SKPhysicsBody bodyWithRectangleOfSize : self . player . size ]; 설정이 마무리 되었으니 이제 추가해야겠죠. [ self addChild : self . player ]; 이제 물리세계를 현 객체에 연결합니다. self . physicsWorld . contactDelegate = self ; 이제 중력값을 설정합니다. 기본값은 (0, -9.8)로 지구와 동일하나 이것으로는 눈깜짝할 새에 사라져 버립니다. 전 이 값으로 설정했습니다. self . physicsWorld . gravity = CGVectorMake ( 0.05 , 0 ); 플레이어는 오른쪽으로 천천히 움직일 것입니다.