【发布时间】:2020-03-05 13:47:16
【问题描述】:
我在SpriteKit's update delegate 中创建了一个SKShapeNode,它完全按照我的意愿工作。我唯一担心的是update 每十分之一秒就会被调用一次。这是否意味着我的代码也经常运行?这似乎对性能不太友好。有办法解决吗?或者在update 上有代码可以吗?
你可能会问,为什么update 中的代码首先是这样的。好吧,如果我把它放在didMove 或sceneDidLoad 中,那么当我旋转device 时,node 不会立即跟随,它会在它的旧位置停留半秒钟,然后再重新定位到它的新位置,使它看起来像跳跃。坏的。 Update 解决了这个问题。代码如下:
override func update(_ currentTime: TimeInterval) {
let mySquare = SKShapeNode(rectOf: CGSize(width: 50, height: 50))
mySquare.fillColor = SKColor.blue
mySquare.lineWidth = 1
mySquare.position = CGPoint(x: 0, y: 0)
self.addChild(mySquare)
}
}
【问题讨论】:
-
“或者没问题”每十分之一秒添加一个新孩子怎么可能没问题?
-
更新函数是 SpriteKit 游戏循环的一部分,它不是委托。就像我在你的其他帐户上告诉你的那样@MarcTornej
-
您没有以正确的方式解决您的问题。旋转不应导致您的节点移动。如果您打算同时支持两个方向,我建议您使用方形场景。
标签: ios swift sprite-kit device-orientation skshapenode