创建多个具有相同纹理的精灵(节点)swift

create multiple sprites(nodes) with same texture swift

所以我正在尝试制作游戏,我必须生成一排向上加速的节点。但是每次添加节点时都会出现错误(因为节点已经有父节点)显然我添加了 Sprite.removeFromParent()

在图片中您可以看到我正在尝试实现的内容。 无论如何,这些块还必须记录它们被触摸的次数。

回答标题中的问题:

很简单,创建一个 SKTexture 并为每个 SKSpriteNode 设置纹理 SKTexture。代码看起来像这样:

// Create the texture
var boxTexture = SKTexture(imageNamed: "boxImage")
for (var i = 0; i < 10; i++) {
    // Create box with defined texture
    var box = SKSpriteNode(texture: boxTexture);
    // Set position of box dynamically
    box.position = CGPointMake(CGFloat(i * 20), CGFloat(512));
    // Name for easier use (may need to change if you have multiple rows generated)
    box.name = "box"+String(i);
    // Add box to scene
    addChild(box);
}

您在描述中遇到的问题似乎是您只创建了一个 SKSpriteNode 当您需要多个穿过底部时。只需使用 for 循环创建多个,并将它们全部添加到场景中(基本上,与上面的代码相同)。您可能希望为它们提供所有 name 属性,以便稍后找出哪个框是哪个框(如果您不将它们存储为全局变量)。如果同时移动多行框,请务必更改命名。