gpt4 book ai didi

ios - 在删除节点之前对 SKAction 进行一次动画处理

转载 作者:行者123 更新时间:2023-11-29 00:49:13 25 4
gpt4 key购买 nike

我正在制作一个游戏,我正在 didBeginContact 函数中实现一些要发生的事情。

基本上,我的家伙扔了一个projectile,当那个projectile连接时,我需要projectile消失,enemy 它会执行一个动画 然后敌人消失。

我可以让敌人动画播放一次然后消失,但我的射弹没有,或者我可以让敌人和射弹消失但没有动画显示。

到目前为止,这是我的代码:

if let node = contact.bodyB.node as? SKSpriteNode {

if node.parent != nil {

let moveUp = SKAction.moveBy(CGVector(dx: 0, dy: -100), duration: 0.5)

let fadeOut = RocketExp

let runBlock = SKAction.runBlock{ () -> Void in
node.removeFromParent()

}

let remove = SKAction.removeFromParent()

let moveAndFade = SKAction.group([moveUp, fadeOut])

let sequence = SKAction.sequence([fadeOut, runBlock, remove])


node.runAction(sequence)
node.removeFromParent()
}
}

我很确定 node.removeParent() 只是删除了两个被命中的节点。

最佳答案

尝试这样做

let enemyCategory: UInt32 = 0x1 << 0
let missileCategory: UInt32 = 0x1 << 1

enemy.physicsBody?.categoryBitMask = enemyCategory
enemy.physicsBody?.contactTestBitMask = missileCategory

missile.physicsBody?.categoryBitMask = missileCategory
missile.physicsBody?.contactTestBitMask = enemyCategory

func didBeginContact(contact: SKPhysicsContact) {
if body1.categoryBitMask == enemyCategory && body2.categoryBitMask == missileCategory{
// your code here
body2.node?.removeAllActions()
body2.node?.removeFromParent()
}
}

关于ios - 在删除节点之前对 SKAction 进行一次动画处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38311574/

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