【发布时间】:2016-12-05 02:39:34
【问题描述】:
这里是示例代码:
SKNode* node = [SKNode node];
node.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
[self addChild: node];
SKSpriteNode *sprite1 = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"];
sprite1.position = CGPointMake(-900.0, -900.0);
[node addChild: sprite1];
SKSpriteNode *sprite2 = [SKSpriteNode spriteNodeWithImageNamed:@"Spaceship"];
sprite2.position = CGPointMake(900.0, 900.0);
[node addChild: sprite2];
[self runAction: [SKAction sequence: @[[SKAction waitForDuration: 3.0], [SKAction runBlock:^{
SKTexture* texture = [self.view textureFromNode: node];
SKSpriteNode* ts = [SKSpriteNode spriteNodeWithTexture: texture];
ts.xScale = 1.0 / [UIScreen mainScreen].scale;
ts.yScale = 1.0 / [UIScreen mainScreen].scale;
[self addChild: ts];
}]]]];
一旦我将两个精灵彼此分开,这使得容器节点的累积帧变大,我就会得到黑色纹理?
【问题讨论】:
-
相距多远?纹理的最大尺寸为 2048x2048 点。如果累积的帧大于此,则可能根本不会创建纹理。检查 textureFromNode: 是否返回 nil。
-
最大贴图大小其实取决于设备,目前大部分ios设备都可以处理4096,见stackoverflow.com/questions/2505186/…
标签: sprite-kit