【问题标题】:Connecting CCSprites in Cocos2D在 Cocos2D 中连接 CCSprite
【发布时间】:2012-06-22 08:12:01
【问题描述】:

我目前正在研究 cocos2d 中的有趣示例。我有一个精灵,那是一条线,它只是在我的背景上移动(在 CCAction 的帮助下)。但这条线是 4000 像素宽。 iOS 4.x 支持不超过 2048 x 2048 像素。所以我决定把这条线切成两段。所以,现在我有两张图像,1920 x 1920。现在我想做和以前一样的事情。这是非常简单的代码:

CCSprite *abstractFigureLine = [CCSprite spriteWithFile:@"Abstract Figures Line.png"];
    abstractFigureLine.position = CGPointMake(960.0f, 160.0f);
    [self addChild:abstractFigureLine z:1];
    CCAction *moveAbstractFigureLineAction = [CCMoveTo actionWithDuration:10.0f position:CGPointMake(-900.0f, 160.0f)];
    [abstractFigureLine runAction:moveAbstractFigureLineAction];

现在我需要插入另一个精灵的图像,也很简单,但是有没有办法将这两个精灵连接到一个精灵中?

【问题讨论】:

  • 为什么不用OpenGL画线呢?即ccDrawLine?

标签: objective-c ios xcode cocos2d-iphone


【解决方案1】:

为您的精灵创建一个基础节点,将您的精灵添加到此节点,并在此节点上运行操作:

CCSprite *abstractFigureLine1 = [CCSprite spriteWithFile:@"Abstract Figures Line.png"];
abstractFigureLine.position = CGPointMake(0, 0);

CGSize lineSize = [abstractFigureLine1 contensSize];
CCSprite *abstractFigureLine2 = [CCSprite spriteWithFile:@"Abstract Figures Line.png"];
abstractFigureLine.position = CGPointMake(lineSize.width, 0);

CCNode *base = [[CCNode alloc] init];
[base setPosition: CGPointMake(960.0f, 160.0f)];

[base addChild:abstractFigureLine1 z:1];
[base addChild:abstractFigureLine2 z:1];

[self addChild:base z:1];

CCAction *moveAbstractFigureLineAction = [CCMoveTo actionWithDuration:10.0f position:CGPointMake(-900.0f, 160.0f)];
[base runAction:moveAbstractFigureLineAction];

注意,CCSprite 的位置 - 是它的中心,但 CCNode 的位置 - 是它的左下角。

【讨论】:

  • 您可以在任何 CCNode 子类上设置任何点来定位它。只需将其 isRelatieveAnchorPoint 属性设置为 YES
  • 我没有找到原因,但是最新的 cocos2d 源没有这样的属性。我只是从不使用它。
  • 在 cocos2d 的 1.1.0 和 2.0 版本中,CCNode 都有属性 isRelativeAnchorPoint
  • 我用的是box2d,所以模板提供了PhysicSprite类,CCSprite的子类。有这个属性可以使用,更新后,它有一个错误“未定义的属性”。可能是被更新了,或者被替换了。我刚刚删除了它,它很好。
【解决方案2】:

创建一个具有两个精灵的类,并在第一个精灵的动作结束时开始第二个恶意动作。

【讨论】:

  • 此代码已经在单独的类中。现在我试试看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多