下面是示例代码:SpriteKit textureFromNode返回黑色图像
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。 – LearnCocos2D
最大的纹理尺寸实际上取决于设备,目前大多数ios设备可以处理4096,请参阅http://stackoverflow.com/questions/2505186/what-is-the-maximum-texture-size-available-on-the-the-max- ipad – Sky