ios - 生成敌人在 spritekit/swift 中效果不佳

标签 ios swift sprite-kit swift2 sprite

我想按顺序生成敌人。所以为此写了一个代码,但无法理解为什么只有两个第一个敌人出现在正确的位置,而其余的则出现在错误的位置。这是代码:

func addDoor() {
    for i in 0...1 {
        let doorSprite = SKSpriteNode(imageNamed: "Door")
        doorSprite.name = "door\(i)"
        if i == 0 {
            doorSprite.position = CGPointMake(self.frame.size.width / 2.0 - 40.0 - doorSprite.frame.size.width, self.frame.size.height - doorSprite.frame.size.height / 2.0)
        } else {
            doorSprite.position = CGPointMake(self.frame.size.width / 2.0 + 40.0 + doorSprite.frame.size.width, self.frame.size.height - doorSprite.frame.size.height / 2.0)
        }
        gameLayer.addChild(doorSprite)
    }
}

func enemySpawn() {
    for i in 0..<15 {
        let sprite = Enemy(imageNamed: "Enemy")
        sprite.name = "enemy\(i)"

        let randDoor = Int(arc4random_uniform(2))

            if randDoor == 0 {
                if let door = gameLayer.childNodeWithName("door\(randDoor)") {
                    sprite.position = CGPointMake((door.position.x - door.frame.size.width / 2.0) + spawnPoint(UInt32(door.frame.size.width - sprite.frame.size.width)) + sprite.frame.size.width / 2.0, door.position.y)
                }
            } else {
                if let door = homeLayer.childNodeWithName("door\(randDoor)") {
                    sprite.position = CGPointMake((door.position.x - door.frame.size.width / 2.0) + spawnPoint(UInt32(door.frame.size.width - sprite.frame.size.width)) + sprite.frame.size.width / 2.0, door.position.y)
                }
            }
        }

        enemiesLayer.runAction(SKAction.waitForDuration(NSTimeInterval(i)), completion: {
            self.enemiesLayer.addChild(sprite)
        })

    }
}

func spawnPoint(num: UInt32) -> CGFloat {
    let randomSpawn: CGFloat = CGFloat(arc4random_uniform(num))
    return randomSpawn
}

最佳答案

一方面,ifelse block 中的逻辑完全相同。

我不太确定您在这里要做什么,或者应该如何使用 randDoor 变量,但是整个 if - else block 是'做任何事情。

关于ios - 生成敌人在 spritekit/swift 中效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35034831/

相关文章:

ios - 取消加粗 UIFontDescriptor

ios - 调用 JSONValue : Unrecognised leading character at offset 0 时 ASIHTTPRequest 失败

ios - react native : What is the difference between using Cocoapods and manually linking modules?

ios - 从 View 中心向右动画 UIButton 的约束

swift - 方法与父类(super class)中的方法冲突 - 重写会出错

ios - Swift-无法将核心数据转换为url参数

iOS HealthKit 如何保存心率 (bpm) 值? swift

ios - TWTRTimeLineViewController 隐藏选项卡栏项目图像

ios - 快速更改播放器

swift - 无法使用 unarchiveFromFile 在 SpriteKit 中设置 GameScene