首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >发射器碰撞不起作用?

发射器碰撞不起作用?
EN

Stack Overflow用户
提问于 2017-07-10 11:39:51
回答 2查看 118关注 0票数 0

我有一个关于我的发射器产卵的碰撞的问题。当冲突发生时,应用程序就会崩溃。但从我所做的研究来看,我看不出有什么问题。

冲突:

代码语言:javascript
运行
复制
if bodyA.categoryBitMask == 1 && bodyB.categoryBitMask == 3 || bodyA.categoryBitMask == 3 && bodyB.categoryBitMask == 1{
    print("END GAME")
    let dieexplostionNode = SKEmitterNode(fileNamed: "Explode")
    player.addChild(dieexplostionNode!)
}

我是不是遗漏了什么让发射器产卵的东西?每次碰撞时,它都会崩溃。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-11 03:37:56

基于你对上面答案的评论,我认为Action是你所需要的。

代码语言:javascript
运行
复制
if bodyA.categoryBitMask == 1 && bodyB.categoryBitMask == 3 || bodyA.categoryBitMask == 3 && bodyB.categoryBitMask == 1{
    print("END GAME")

dieexplostionNode = SKEmitterNode(fileNamed: "Explosion.sks"){
dieexplostionNode.targetNode = self 
//dieexplostionNode.position = player.position - no need for this!

// add 3 actions
let wait = SKAction.wait(forDuration: 2)
let addExplosion = SKAction.run {
    self.player.addChild(dieexplostionNode!)
}
let removeExplosion = SKAction.run {
        dieexplostionNode?.removeFromParent()
 }

// put them in a sequence.
let seq = SKAction.sequence([addExplosion,wait,removeExplosion])

// run the sequence
self.run(seq)

}

这会将dieexplostionNode添加到播放器中。然后等待2秒钟。然后删除dieexplostionNode

票数 2
EN

Stack Overflow用户

发布于 2017-07-11 02:23:50

你是不是把SceneKit和SpriteKit搞混了?如果要添加SpriteKit粒子发射器文件,请在SceneKit中使用SCN文件/缩写。文件->新的-> IOS/OSX ->资源-> SpriteKit粒子文件

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45003464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档