我正在使用以下代码使相机跟随我的角色跌落屏幕:
[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 在纵向模式下创建的。
任何帮助将不胜感激!