iPhone dev>从cocos2d中的其他对象获取CCSprite位置?

时间:2011-04-07 07:56:42

标签: cocos2d-iphone

嘿,伙计们, 我正在用cocos2d创建一个游戏,(我对它很新,并试图解决这个问题)

在我正在制作的游戏中我创建了一个“Bomb”类和一个“Player”类, 如果发现碰撞,我希望炸弹检查与玩家的碰撞,爆炸。

我的问题是我不知道如何从炸弹类中获得玩家的位置, 如果你们能帮助我,我会很高兴, 谢谢!

1 个答案:

答案 0 :(得分:0)

你确实将CCSprites添加到了CCLayer,不是吗?然后CCLayer应该可以访问它们。因此,您可以使用CCLayer的tick函数来跟踪CCSprites的位置,并在其边界框重叠时触发操作。

一些示例代码来说明:

@interface MyLayer : CCLayer {
  BombSprite *bomb;
  PlayerSprite *player;
}

...

@end

@implementation MyLayer

- (id)init {
   if ((self = [super init])) {
      bomb = ...
      player = ...

      [self schedule:@selector(tick:)];
   } 
   return self;
}

- (id)tick:(ccTime)dt {
   if (CGRectContainsRect([bomb boundingBox], [player boundingBox])) {
      NSLog(@"Collision!");

      // call [player didCollideWith:bomb] or something
      ...
   }
}

@end