次のコードを使用して、キャラクターが画面から落ちるときにカメラをキャラクターに追従させます。
[self runAction:[CCFollow actionWithTarget:charSprite worldBoundary:[levelLoader gameWorldSize]/*CGRectMake(0,0,320,3000)*/]];
コードは期待どおりに実行され、画面の上部から落下するキャラクターを追跡します。ただし、彼が画面の中央に到達すると、カメラは彼の追跡を停止します。
[levelLoader gameWorldSize]
上記のコードと、をコメントアウトしたものに置き換えてみましたが、CGRectMake(0,0,320,3000)
どちらも同じ結果が得られます。最後の手段として、www.raywenderlich.com で見つけた以前に機能したコードを使用しようとしました (以下を参照) (私が書いた別のゲームの x 軸で機能しました) が、同じ問題が発生しました。
-(void)setViewpointCenter:(CGPoint) position
{
CGSize winSize = [[CCDirector sharedDirector] winSize];
CGRect worldRect = [levelLoader gameWorldSize];
int x = MAX(position.x, worldRect.origin.x + winSize.width / 2);
int y = MAX(position.y, worldRect.origin.y + winSize.height / 2);
x = MIN(x, (worldRect.origin.x + worldRect.size.width) - winSize.width / 2);
y = MIN(y, (worldRect.origin.y + worldRect.size.height) - winSize.height/2);
CGPoint actualPosition = ccp(x, y);
CGPoint centerOfView = ccp(winSize.width/2, winSize.height/2);
CGPoint viewPoint = ccpSub(centerOfView, actualPosition);
self.position = viewPoint;
}
私の世界は、LevelHelper を使用してポートレート モードで作成されています。
どんな助けでも大歓迎です!