SKSpriteNode 没有落入根场景
Posted
技术标签:
【中文标题】SKSpriteNode 没有落入根场景【英文标题】:SKSpriteNode are not falling in root scene 【发布时间】:2018-05-08 07:48:18 【问题描述】:我添加了几个具有重复时间间隔的节点,但它们都没有自然下降。我也添加了
item!.physicsBody?.isDynamic = true
item!.physicsBody?.affectedByGravity = true
我正在打电话
self.scene?.addChild(itemController.spawnItem())
来自游戏场景
func spawnItem()-> SKSpriteNode
let item : SKSpriteNode?;
if Int(randomBetweenNumbers(firstnum: 0, secondnum: 10)) >= 6
item = SKSpriteNode(imageNamed: "Bomb");
item!.name = "Bomb";
item!.setScale(0.6);
item!.physicsBody = SKPhysicsBody(circleOfRadius: item!.size.height / 2);
else
let num = Int(randomBetweenNumbers(firstnum: 1, secondnum: 6));
item = SKSpriteNode(imageNamed: "Fruit\(num)");
item!.name = "Fruit";
item!.setScale(0.7);
item!.physicsBody = SKPhysicsBody(circleOfRadius: item!.size.height / 2);
item!.physicsBody?.categoryBitMask = ColliderType.FRUIT_AND_BOMB
item!.zPosition = 3;
item!.physicsBody?.isDynamic = true
item!.physicsBody?.affectedByGravity = true
item!.physicsBody?.isResting = false
item!.anchorPoint = CGPoint(x: 0.5, y: 0.5)
item!.position.x = randomBetweenNumbers(firstnum: minX, secondnum: maxX)
item!.position.y = 400
return item!;
【问题讨论】:
你能解释一下“不自然坠落”是什么意思吗? 我的猜测是,你没有在 GameScene 中正确设置物理。 只是看一下代码,您忘记了应该使它工作的一行。在您的viewDidLoad
方法中添加 physicsWorld.contactDelegate = self
。
我通过将场景的重力属性设置为 -0.8 解决了这个问题,它对我有用
【参考方案1】:
我的场景的重力属性 y 参数设置为 0。所以所有正在添加的节点都不会落到底层,所以改为 -0.8 它对我有用
【讨论】:
不要设置,默认是地球重力以上是关于SKSpriteNode 没有落入根场景的主要内容,如果未能解决你的问题,请参考以下文章
如何获取场景中不可见的 SKSpriteNode 的节点数?
使用场景编辑器获取 SKSpriteNode 的 userData
SpriteKit:向场景中添加多个 SKSpriteNode