gpt4 book ai didi

ios - 如何正确管理屏幕上的 Sprite 组

转载 作者:搜寻专家 更新时间:2023-10-31 22:45:30 24 4
gpt4 key购买 nike

我正在用 Swift 构建我的第一个游戏,我想知道如何同时处理多个屏幕 Sprite 。我的游戏不断地使用 addChild 将 Sprite 推到屏幕上,所以同时有很多活跃的 Sprite 。我意识到我没有合适的方法来同时影响所有这些 Sprite ——就像我想同时影响所有敌方 Sprite 的物理属性一样。到目前为止,我在 GameScene 的开头创建了一个空数组 var enemySprites = [enemyType1]() 并且一直在 appending Sprite 实例而不是使用 addChild 将它们直接绘制到场景中。但是,我不能简单地循环并将它们绘制到屏幕上:

    for enemy in enemySprites{
addChild(enemy)
}

这段代码在 override func update(currentTime: CFTimeInterval) 函数中,所以也许我只是放错了地方?任何关于如何解决这个问题的帮助都会很棒!

最佳答案

山姆,

下面是一些示例代码,用于在您的生命值达到 0 时更新敌人:

首先,我们在 lives 属性上设置一个属性观察器,这样我们就可以在你失去所有生命时调用一个函数:

var lives = 3 {
didSet {
if lives == 0 {
updateEnemies()
}
}

然后是枚举所有敌人并将每个敌人的速度更改为 (0, 0) 的函数:

func update enemies() {
enumerateChildNodesWithName("type1") {
node, stop in
let enemy = node as! SKSpriteNode
enemy.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
}
}

关于ios - 如何正确管理屏幕上的 Sprite 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38728823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com