참고 :이 경우 필자는 일반적으로 필요한 것보다 적은 코드로 게임을 만들 수있는 spritebuilder라는 프로그램을 사용하고 있습니다. 모든 코드의 솔루션을 알고 있다면 모든 것을 자유롭게 공유 할 수 있습니다.스프라이트를 수직으로 목표로하는 C 스프라이트 빌더
또한이 질문에 대해서는이 링크의 튜토리얼 (Build Your Own Flappy Bird Clone)을 따랐습니다. "Loop the Ground"
그래서 내 문제는 여기에 있습니다. 현재 게임을하고있는 Im, 나는 내가 만든 캐릭터 스프라이트로 세로로 길게 스크롤하는 카메라를 만들었지 만 루프를 만들려면 특정 이미지가 필요합니다. 이미지가 화면의 맨 아래 부분을 벗어나면 무한히 화면 위쪽으로 돌아가고 싶습니다. 이를 위해 두 개의 동일한 이미지 (이 경우에는 나무 껍질)를 만들었습니다. 하나는 화면에 표시되고 다른 하나는 화면에 나타나지 않으므로 첫 번째 이미지가 화면을 떠날 때 두 번째 이미지가 화면을 벗어나면 두 번째 이미지가 대체됩니다 (자연스럽게). 이미지에 대해 두 개의 객체를 만들고 _ground1 및 _ground2라는 이름을 할당했으며 NSArray를 저장했습니다. (다소 혼란 스럽다면 위의 링크를 참조하십시오.) 다음은 나는 가지고있다 :
CCNode *_ground1;
CCNode *_ground2;
NSArray *_grounds;
for (CCNode *ground in _grounds) {
// get the world position of the ground
CGPoint groundWorldPosition = [_physicsNode convertToWorldSpace:ground.position];
// get the screen position of the ground
CGPoint groundScreenPosition = [self convertToNodeSpace:groundWorldPosition];
// if the left corner is one complete width off the screen, move it to the right
if (groundScreenPosition.y <(-1 * ground.contentSize.height)) {
ground.position = ccp(ground.position.x , ground.position.y + 2 * ground.contentSize.height);
}
나는 이것을 시도 할 때 어떤 이유로 작동하지 않는다. 그러면 카메라가 수직으로 움직이게되지만 이미지가 반복되지 않습니다. 두 이미지가 화면 하단에 남겨지면 새로운 이미지가 대체되지 않습니다.