【问题标题】:How to I get a scene to follow my sprite?如何让场景跟随我的精灵?
【发布时间】:2013-04-12 07:53:52
【问题描述】:

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

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

【问题讨论】:

  • 您知道允许图层跟随其子节点之一的 CCFollow 操作吗?
  • 哦,谢谢,不知道 ccfollow 也可以影响图层。
  • 实际上只有在图层上运行才有效
  • 尝试使用 [layer runAction: [CCFollow actionWithTarget:Player]]; & CCLayer *层;但没有运气。有任何想法吗?这是有道理的。
  • 在一个新的空项目中试一试。有用。只是不要在图层上更改位置或运行其他移动操作。并确保 layer 是 CCLayer 类。

标签: objective-c cocos2d-iphone kobold2d


【解决方案1】:

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

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

再次感谢 LearnCocos2D。

【讨论】:

    【解决方案2】:

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

    self.position = viewPoint;
    

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

    map.position = viewPoint;
    

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2012-01-03
      • 2012-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多