如何让一个场景跟随我的精灵?

时间:2013-04-12 07:53:52

标签: objective-c cocos2d-iphone kobold2d

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

[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;
}

2 个答案:

答案 0 :(得分:1)

废弃我的原始代码并将其替换为LearnCocos2D推荐的干净代码

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

再次感谢LearnCocos2D。

答案 1 :(得分:0)

我不确定我是否明白你要做的事情清楚, 但我想也许你想让地图移动到玩家后面? 如果是这种情况,您可以尝试移动地图而不是自己。 我的项目中有一个非常相似的功能,基本上有一行不同, 那是最后一行。

self.position = viewPoint;

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

map.position = viewPoint;

希望有所帮助!