1

我一直试图让我的场景跟随我的玩家精灵,但由于某种原因它没有跟随。谁能解释为什么?我试过以下教程,但没有运气。这是我当前的代码:

[self setViewpointCenter:Player.position];


    -(void)setViewpointCenter:(CGPoint) position {
    CGSize winSize = [[CCDirector sharedDirector] winSize];

    int x = MAX(position.x, winSize.width / 2);
    int y = MAX(position.y, winSize.height / 2);
    x = MIN(x, (theMap.mapSize.width * theMap.tileSize.width) - winSize.width / 2);
    y = MIN(y, (theMap.mapSize.height * theMap.tileSize.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;
}
4

2 回答 2

1

废弃我的原始代码,并用 LearnCocos2D 推荐的干净代码替换它

[self runAction: [CCFollow actionWithTarget:Player]];

再次感谢 LearnCocos2D。

于 2013-04-15T11:27:43.863 回答
0

我不确定我是否清楚地理解您要做什么,但我想您可能希望地图移动到玩家身后?
如果是这种情况,您可以尝试移动地图而不是自己。我的项目中有一个非常相似的功能,基本上只有一行不同,那就是最后一行。

self.position = viewPoint;

这是它在我的代码中的显示方式:

map.position = viewPoint;

希望有帮助!

于 2013-04-13T00:42:38.193 回答