【发布时间】:2014-05-22 18:36:31
【问题描述】:
所以我有一个 SKSpriteNode,它经历了两次修改它的形状和颜色的 SKAction,但是我想将修改后的 SKSpriteNode 作为 SKTexture 返回,我可以将其应用于另一个 SKSpriteNode。这是我目前正在使用的。
1) 生成“修改后的”laserNode 并将其存储为属性
-(void)generateLaserSprite
{
SKSpriteNode *laserNode = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImageNamed:@"Laser.png"]];
[laserNode runAction:[SKAction group:@[[SKAction colorizeWithColor:[SKColor redColor] colorBlendFactor:100 duration:0.0],
[SKAction scaleXBy:0.4 y:0.7 duration:0.0],
]]];
_laserSprite = laserNode
}
2) 然后 SKScene 中的一个方法调用此方法来检索属性的副本
-(SKSpriteNode*)retrieveLaserSprite
{
SKSpriteNode *laserNode = [_laserSprite copy];
laserNode.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(laserNode.size.width*0.8, laserNode.size.height*0.8)];
//other laserNode.physicsBody modifications
return laserNode;
目前的问题是,当我调用第二个方法(retrieveLaserSprite)时,返回的 LaserNode 然后作为原始图像(SKAction 前)显示在屏幕上,然后您可以明显看到 SKActions 发生在 -屏幕。
【问题讨论】:
标签: ios objective-c sprite-kit