【发布时间】:2014-08-14 03:55:06
【问题描述】:
在Scratch 中有一个很酷的函数penDown,它可以让您的精灵在从A 移动到B 时在屏幕上追踪某种颜色的线。我想通过子类化SKSpriteNode 和每当位置发生变化时都会收到通知。然而,这个简单的覆盖导致整个事情变慢了(FPS 从 20 下降到 7,只有两个精灵):
override var position : CGPoint {
get {
return super.position
}
set {
super.position = newValue
// Add this new point to the bezier path of the line so that I can trace it.
}
}
为什么会这样?
【问题讨论】:
-
你确定是覆盖导致速度变慢,而不是把每个点添加到贝塞尔路径然后渲染它?
-
@MikeS 是的,因为我实际上还没有做任何事情。这就是您在此处看到的内容:只是一条评论。
-
好的,只是检查一下:)
-
您是否尝试过改用property observers?
override var position : CGPoint { didSet { // ... } } -
@MikeS 哦,这正是我所需要的——根本不影响 FPS。请随意回答,以便我接受。
标签: swift sprite-kit