ios如何获得老 spritenode 用于新 spritenode 的位置?

发布时间: 2017/4/3 14:58:43
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

在我的 brickgame 我想要放置在彼此的砖。

我创建了 BrickNode 类。下面是创建在主文件中调用的不同尺寸的砖。

#import "BrickNode.h"

@implementation BrickNode

- (instancetype) init {
    if (self == [super init]) {

        int number = arc4random() % 2;

        if (number == 0) {
            SKSpriteNode *bridge1 = [SKSpriteNode spriteNodeWithImageNamed:@"TestBridgePiece"];
            bridge1.anchorPoint = CGPointMake(0.5, 0.0);
            [self addChild:bridge1];
        }
        if (number == 1) {
            SKSpriteNode *bridge2 = [SKSpriteNode spriteNodeWithImageNamed:@"TestBridgePiece1"];
            bridge2.anchorPoint = CGPointMake(0.5, 0.0);
            [self addChild:bridge2];
        }
    }
    return self;
}

@end

我创建了调用类的方法。此方法将要调用 TouchesBegin 。因为我想让用户能够生成下一砖。

 -(void)spawnBrick
    {
        BrickNode *newBrick = [[BrickNode alloc] init];
        newBrick.position = CGPointMake(0.0, <#CGFloat y#>)
    }

然而问题是新砖的位置。我需要只是已加载,知道在哪里可以找到新砖的砖定位的信息。

解决方法 1:

只是做

[self.parent.children objectAtIndex:([self.parent.children count] - 2)] ;

后向其父节点获得任何之前它以前添加的节点添加新砖。 如果您要添加砖和非砖,这不会起作用,但如果有它结构包含 SKNode 只有砖,然后这会让你增加了以前砖。

注意,我没有不检查这是否目标 C 是正确的但它的概念是正确。

该算法︰

调用父节点,
调用父节点的子节点
走到尽头的子节点 (这是目前最新砖添加),
获取结束,前后索引
返回在此索引 SKNode。

官方微信
官方QQ群
31647020