Tag: bitblt

雪碧套件:大量的精灵(1000 +)位Blitting

我试图创build一个SpriteKit有几千个精灵(〜500 – 2000)的场景。 每个精灵只是一个白色的像素1×1 – 没有必要甚至使用他们的纹理。 直接把这个精灵加在一起是不可能的(或者至less我是这么认为的)。 在iPhone 6上,我添加了大约200个精灵,然后由于内存的原因系统结束了添加过程,其余的精灵都没有添加。 我已经find了一个聪明的解决scheme,称为比特Blitting ,其中所有的精灵都添加到一个节点,然后“转换”到textureFromNode:方法的纹理,然后从这个纹理创build一个精灵,最终将被添加到一个屏幕。 它工作的很好,我可以一次创造超过10000个精灵,并具有很高的fps。 我的问题是我以后不能移动这些精灵(=改变位置)。 无论我做什么,纹理总是保持不变。 我错过了什么? 我的代码: override func didMoveToView(view: SKView) { self.generateRandomSprites() } func generateRandomSprites() { let texture = SKTexture(imageNamed: "whitePixel") self.canvasNode = SKNode() log("started generating all sprites") for var i = 0;i < 1000;i++ { let width = self.scene!.frame.size.width let height = self.scene!.frame.size.height let […]