gpt4 book ai didi

ios - 如果隐藏节点,如何禁用 SKSpriteNode 的 physicsBody?

转载 作者:搜寻专家 更新时间:2023-11-01 05:44:51 24 4
gpt4 key购买 nike

我想在需要之前隐藏一些敌人。但问题是 - 英雄无论如何都在与他们的 physicsBidies 互动。我正在尝试这样做:

self.cat.hidden = true

if self.cat.hidden == false {
self.hero.physicsBody?.collisionBitMask = ColliderType.Cat.rawValue
self.hero.physicsBody?.contactTestBitMask = ColliderType.Cat.rawValue
}

if self.cat.hidden {
self.cat.physicsBody = nil
}else{
self.cat.physicsBody = SKPhysicsBody(texture: cat.texture, size: self.cat.size)
self.cat.physicsBody?.dynamic = false
self.cat.physicsBody?.categoryBitMask = ColliderType.Cat.rawValue
self.cat.physicsBody?.contactTestBitMask = ColliderType.Hero.rawValue
self.cat.physicsBody?.collisionBitMask = ColliderType.Hero.rawValue
}
//in didBeginContact
if (contact.bodyA.categoryBitMask == ColliderType.Cat.rawValue && self.cat.hidden == false || contact.bodyB.categoryBitMask == ColliderType.Cat.rawValue && self.cat.hidden == false) {
eatenByCat()
}

//in update
if (self.score >= 10) {
self.cat.hidden = false
}

我打开了 skView.showsPhysics,敌人的物理 body 仍然存在,我的英雄正在联系他们。为什么?我想让玩家认为当他有一定分数时会有新的敌人出现,但在代码中它们是随机产生的,我只是不想马上显示它们。所以我需要我的英雄暂时忽略他们。

最佳答案

内部 update() 方法

 if sprite.hidden {

sprite.physicsBody = nil

}

关于ios - 如果隐藏节点,如何禁用 SKSpriteNode 的 physicsBody?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31555636/

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