[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);

플레이어는 오른쪽으로 천천히 움직일 것입니다.

댓글

이 블로그의 인기 게시물

한글 2010 에서 Ctrl + F10 누르면 특수문자 안뜰 때

아이폰에서 RFID 사용하는 방법

VCC 와 GND 는 무엇일까?