2015-01-10 2 views
-1

좋아, 그래서 게임에서 카메라를 구현하고 싶었고 다른 게시물에서 어떻게하는지 보았습니다. 나는 나 자신이 코드의없는 생각하지 않았기 때문에Sprite-Kit에서 카메라를 올바르게 설정하는 방법

그래서 이것은

-(void)didSimulatePhysics { 

SKSpriteNode *hero = self.player; 

int cameraEdge = self.player.size.height * 3; 
if(hero && self.isPaused == NO) 
{ 
    CGPoint heroPosition = hero.position; 
    CGPoint worldPosition; 

    worldPosition.x = 0; 

    CGFloat yCoordinate = worldPosition.y + heroPosition.y; 


    if (yCoordinate < cameraEdge && heroPosition.y > -200){ 
     NSLog(@"Waddap bud"); 
     worldPosition.y = worldPosition.y - yCoordinate + cameraEdge; 
     self.worldMovedForUpdate = YES; 

    }else { 

     worldPosition.y = self.frame.size.height/2; 
    } 

    if(yCoordinate > (self.frame.size.height - cameraEdge) && heroPosition.y < 2000) 
    { 
     worldPosition.y = worldPosition.y + (self.frame.size.height - yCoordinate) - cameraEdge; 
     self.worldMovedForUpdate = YES; 

    } 
    self.world.position = worldPosition; 

} 
} 

입니다 (기본적으로 내가 무엇을 달성하고자하는 것은 내 플레이어가 일정 높이에 도달 할 때마다 카메라가 이동하는 것입니다) 무슨 일이 일어나고 있는지 완전히 이해하지만 작동합니다. 내가 원하는 방식이 아니야. 플레이어가 특정 y 레벨에 도달하면 카메라가 갑자기 플레이어를 따라 시작하고 플레이어가 많이 뛰었을 때 카메라 움직임과 카메라 움직임이 전환되는 지점이 발생하여 매우 이상한 카메라 움직임을 유발합니다. 나는 이것이 다소 혼란 스럽지만 나는 그것을 설명하는 더 좋은 방법을 생각할 수 없다.

누구든지이 코드를 자세히 설명해 주실 수 있습니까? (코드를 읽을 수 있고, 이해가 안되요) 그리고 누군가가 해결책을 가지고 있다면 (문제를 이해했다는 것을 감안할 때) P를 망설이지 말라. 카메라가 플레이어 코드의 간단한 줄을 추가 따를 수 있도록하기 위해 나에게

덕분에 많은

+0

특별히 코드에 대해 이해하지 못하는 점은 무엇입니까? – sangony

+0

카메라가 어떻게 'heroPosition'을 따르는 지 이해하는 데 어려움이있는 것 같습니다. 다음은이 논리를 구현하는 방법을 이해하는 데 도움이되는 플랫폼 게임 스크롤에 대한 좋은 자습서입니다. http://www.raywenderlich.com/62049/sprite-kit-tutorial-make-platform-game-like-super-mario -brothers-part-1 – JaredH

답변

0

을 알리는 :

int cameraEdge = 100; 

if (self.player.position.y > cameraEdge) { 
worldPosition.y = cameraEdge - self.player.position.y; 

} 
self.world.position = worldPosition; 

이 기능 : 플레이어의 Y 위치는보다 높은 때마다 100 (또는 당신이 설정 한 것) 세계의 위치는 다음과 같이 시작됩니다. g. 나는 그것을 테스트했고 완벽하게 작동합니다.

관련 문제