swift - 快速创建具有相同纹理的多个 Sprite (节点)

标签 swift sprite-kit sprite skspritenode

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

enter image description here

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

最佳答案

回答标题中的问题:

非常简单,创建一个 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 穿过底部时,您只创建了一个SKSpriteNode。只需使用 for 循环即可创建多个,并将它们全部添加到场景中(基本上与上面的代码相同)。您可能希望为它们提供所有 name 属性,以便稍后确定哪个框是哪个(如果您不将它们存储为全局变量)。如果有多行盒子同时移动,请务必更改命名。

关于swift - 快速创建具有相同纹理的多个 Sprite (节点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32668189/

相关文章:

python - 在 pygame 中查找 Sprite

python - 属性错误: 'Mob' object has no attribute '_Sprite__g'

Swift - 如果键值字典中的值包含另一个键值对怎么办?

iOS 11 动画大标题显示模式

IOS Swift Charts3.0 :How to add Xvals

ios - 从 Xcode Swift 重新启动应用程序后不再发送推送通知

xcode - 在 swift 中使用 Core Motion

Swift:无法将 SKProductsRequestDelegate 协议(protocol)添加到 GameScene 类?

ios - 在 SpriteKit 中使用 AspectFit 显示边框外的内容

Java 游戏开发 - Sprite 碰撞?